Jquery 在主干网中调用model.destroy时是否有方法覆盖url

Jquery 在主干网中调用model.destroy时是否有方法覆盖url,jquery,backbone.js,Jquery,Backbone.js,Rigt现在我调用model.destroy(),这是对服务器端的删除请求 我想在执行销毁时覆盖url调用,我将无法更改urlRoot 有办法吗 谢谢, 普拉茨 所有基于AJAX的交互最终都由Backbone.sync处理,它接受一个选项对象,如果Backbone的默认URL方案不适用于您的服务器,则可以在该对象中提供URL。您可以在调用destroy时传递它 this.model.destroy({url:“您的自定义url/”})如果允许选项按如下方式传递,则会更好:destroy:func

Rigt现在我调用model.destroy(),这是对服务器端的删除请求

我想在执行销毁时覆盖url调用,我将无法更改urlRoot

有办法吗

谢谢, 普拉茨


所有基于AJAX的交互最终都由
Backbone.sync
处理,它接受一个选项对象,如果Backbone的默认URL方案不适用于您的服务器,则可以在该对象中提供URL。

您可以在调用
destroy
时传递它


this.model.destroy({url:“您的自定义url/”})

如果允许选项按如下方式传递,则会更好:
destroy:function(options){return Backbone.Model.prototype.destroy.call(this,u.extend({url:'/destroy/'+this.id},options));}
这通常表示对MVC的严重违反,因为模型应该将这些知识封装在一个地方。这种方法会将自定义URL泄漏到视图/控制器中。并不是说它在每个应用程序中都是绝对糟糕的设计,只是对于典型的设计,我建议不要这样做。完全同意-重写destroy方法肯定是更好的方法,否则它只是在主干中编写jQuery意大利面条式的代码:)
var MyModel = Backbone.Model.extend({
    destroy: function (options) {
        var opts = _.extend({url: '/destroy/' + this.id}, options || {});
        return Backbone.Model.prototype.destroy.call(this, opts);
    }
)};