主干.js发送带有销毁/删除的变量

Backbone.js Sending Variables with destroy/delete

本文关键字:删除 变量 js 主干      更新时间:2023-09-26

我是骨干网的新手,我正在尝试发送删除命令。我正在使用后期修改选项,但删除仅发送方法。示例如下:

    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 的一部分,以便知道需要删除哪个模型。