我是 Backbone 新手,我正在尝试发送删除命令。我正在使用后修改选项,但删除仅发送方法。下面的例子:
Backbone.emulateHTTP = true;
Backbone.emulateJSON = true;
ProductImageModel = Backbone.Model.extend({
initialize : function() {
},
url : "/products/ajaximage",
});
//Later called using
var image = new ProductImageModel({id: id});
image.destroy();
问题是,id永远不会被传递,$_POST中出现的都是这样的:
Array
(
[_method] => DELETE
)
有没有办法在删除时传递id?
最佳答案
在查看带注释的源代码并查看您的代码时...您正在使用静态属性覆盖 Model.url
方法。 Backbone.Model.url
方法如下所示:
url: function() {
var base = getValue(this, 'urlRoot') || getValue(this.collection, 'url') || urlError();
if (this.isNew()) return base;
return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + encodeURIComponent(this.id);
}
它会根据您的模型是否是新模型动态为您生成 URL。
您应该做的,不是将 Model.url
属性默认为 '/products/ajaximage'
,而是默认 Model.urlRoot
> 属性为 '/products/ajaximage'
。这应该允许您执行 Model.destroy()
并获取模型的 ID 作为服务器请求 URL 的一部分,这样您就知道需要删除哪个模型。
关于javascript - Backbone.js 使用 destroy/delete 发送变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10618451/