destroyを呼び出すときに、オプションで.urlプロパティを渡すことでオーバーライドできます。呼び出しごとにこれを実行したいと思うので、次のように実行できます。
var MyModel = Backbone.Model.extend({
destroy: function(options) {
// Override URL
options || (options = {});
// You can put whatever you need here,
options.url = 'http://www.awesome.com/destroy/' + this.get('id') + '/' + this.get('secondaryId');
// Call Model.destroy().
// We are reusing the existing functionality from Backbone.Model.destroy().
Backbone.Model.prototype.destroy.apply(this, arguments);
}
});
var m= new MyModel({ id: 123, secondaryId: 456 });
// Note: You need to set 'id' in order for destroy() call to be successful.
m.destroy({
sucess: function() { console.log('good'); },
error: function() { console.log('bad'); }
});
FirebugまたはChromeDevToolsを開くと、www.awesome.comに対してXHR/AJAX呼び出しが行われたことがわかります。
所有しているすべてのエンティティでこれを実行する必要があると述べたので、その場合に実行できることはBaseModel
、アプリケーションでを作成し、そこからすべてのエンティティを拡張することです。
とにかく、これが役立つことを願っています!
このためのJSFiddle:http: //jsfiddle.net/EwQaD/