要素をフェッチ/更新/破棄するときの代わりに呼び出されるカスタムsync
関数をコレクションまたはモデルに提供できます。Backbone.sync
次に、オプションを調整して、サーバーの設定に一致するリクエストを発行できます。例えば、
var M = Backbone.Model.extend({
sync: function(method, model, options) {
options || (options = {});
// passing options.url will override
// the default construction of the url in Backbone.sync
switch (method) {
case "read":
options.url = "/myservice/getUser.aspx?id="+model.get("id");
break;
case "delete":
options.url = "/myservice/deleteUser.aspx?id="+model.get("id");
break;
case "update":
options.url = "/myService/setUser.aspx";
break;
}
if (options.url)
return Backbone.sync(method, model, options);
}
});
var c = new M({id: 1});
c.fetch();
c.save();
c.destroy();
そして、これらの呼び出しをシミュレートする Fiddle http://jsfiddle.net/nikoshr/4ArmM/
PUT と DELETE を HTTP 動詞として使用するのが面倒な場合は、追加して POST を強制できます。改訂版については、http://jsfiddle.net/nikoshr/4ArmM/1/Backbone.emulateHTTP = true;
を
参照してください。