javascript - Backbone.js 使用 destroy/delete 发送变量

标签 javascript ajax backbone.js

我是 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/

相关文章:

javascript - 如何使用主干 Js 从 ListView 编辑记录

javascript - "Proceed Anyway"使用 javascript 点击 "not trusted"SSL 证书

javascript - 无法访问 JavaScript 中的任何库

javascript - 如何使用 Grunt 而不将所有内容压缩到单个文件中

php - 使用 MySQL 数据库中的内容每秒更新 HTML 元素

jquery - 在 UpdatePanel 中使用 JQuery UI 日期选择器

asp.net - 使用 Ajax,是在服务器端还是在客户端生成额外的标记更好?

javascript - 主干/Marionette 路由 - 缺乏深度

javascript - Backbone 中的路由器分离

javascript - AngularJS:如何使用 $location.path() 发送参数