您可以通过在调用销毁时在选项中传入 .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 或 Chrome 开发工具,您应该会看到对 www.awesome.com 进行了 XHR/AJAX 调用。
既然您提到您希望在您拥有的所有实体上执行此操作,那么在这种情况下您可以做的是BaseModel
在您的应用程序中创建一个,并让您的所有实体都从它扩展。
无论如何,希望这会有所帮助!
JSFiddle:http: //jsfiddle.net/EwQaD/