Rigt现在我打电话model.destroy(),删除请求到服务器端有没有办法覆盖的URL,而在骨干呼吁model.destroy
我想重写URL调用,而这样做破坏,我无法更改urlRoot。
有什么办法吗?
感谢, 普拉斯
Rigt现在我打电话model.destroy(),删除请求到服务器端有没有办法覆盖的URL,而在骨干呼吁model.destroy
我想重写URL调用,而这样做破坏,我无法更改urlRoot。
有什么办法吗?
感谢, 普拉斯
致电destroy
时可以通过。
this.model.destroy({ url: "your-custom-url/" });
var MyModel = Backbone.Model.extend({
destroy: function (options) {
var opts = _.extend({url: '/destroy/' + this.id}, options || {});
return Backbone.Model.prototype.destroy.call(this, opts);
}
)};
所有基于AJAX的互动最终由Backbone.sync
这需要一个选项来处理对象,其中可如果骨干的默认网址方案不适合您的服务器工作中提供的URL。
甚至会更好,如果你允许的选项,通过如下: '破坏:功能(选择){返回Backbone.Model.prototype.destroy.call(这一点,_.extend( {url:'/ destroy /'+ this.id},options)); }' – Lukas 2013-02-26 20:17:21
这通常会代表对MVC的严重违反,因为模型应该将这些知识封装在一个地方。这种方法会将自定义URL泄漏到视图/控制器中。并不是说它在每个应用程序中都是绝对不好的设计,只是针对典型的设计,我会建议不要这样做。 – 2014-04-25 20:49:11
完全同意 - 重写destroy方法绝对是最好的方式,否则它只是在Backbone中编写jQuery spaghetti-like代码:) – neebz 2014-04-27 11:46:15