Backbone - 在后端接收DELETE数据

时间:2015-01-15 00:28:15

标签: javascript backbone.js webapp2

假设您有一个id的模型,并且您想要在数据库中删除它。因此,您在该模型上调用destroy()方法(如下面的代码示例所示)。这会发送OPTIONS HTTP请求,然后发送DELETE HTTP请求。我的问题是,虽然我很好地在服务器端抓住DELETE请求,但我找不到任何信息告诉我模型id是什么 - 它是什么不是请求中的参数,也不在URL中。我如何找到这些信息?我无法在文档here中看到它。这是我在存储代码的仓库中的link

  removeElement: function() {
    // DELETE in DB
    this.model.destroy();
    this.remove();
    this.unbind();
  },

我所期望的是HTTP请求会有{ 'id': 42319 }或类似的参数。

2 个答案:

答案 0 :(得分:1)

您可能需要设置模型ID属性。 Backbone在客户端上自动设置的id是cid而不是id。请注意,使用不同唯一键(如MongoDB)的DB的常见问题是没有从该键映射到ID as described in the docs

例如:

var Model = Backbone.Model.extend({
    idAttribute: "_id"
    //other model setup code
});

答案 1 :(得分:0)

我的问题是我在urlmodel中同时定义了collection属性。您只应在url中定义collection。愚蠢的错误。