有没有办法在骨干中调用model.destroy时覆盖url

Pra*_*ats 5 jquery backbone.js

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

我想在执行destroy时覆盖url调用,我无法更改urlRoot.

有什么办法吗?

谢谢,普拉茨

Pet*_*ons 16

var MyModel = Backbone.Model.extend({
    destroy: function (options) {
        var opts = _.extend({url: '/destroy/' + this.id}, options || {});
        return Backbone.Model.prototype.destroy.call(this, opts);
    }
)};
Run Code Online (Sandbox Code Playgroud)

Backbone.sync如果骨干网的默认URL方案不适用于您的服务器,则最终处理所有基于AJAX的交互,其中包含可以提供URL的选项对象.


nee*_*ebz 7

你可以在打电话时传递它destroy.

this.model.destroy( { url: "your-custom-url/" } );

  • 这通常表示对MVC的严重违反,因为模型应该将这些知识封装在一个地方.这种方法会将自定义URL泄漏到视图/控制器中.并不是说它在每个应用程序中都是绝对糟糕的设计,只是对于典型的设计,我建议不要这样做. (2认同)