骨干模型。删除不发送DELETE

时间:2014-12-07 18:44:03

标签: mongodb backbone.js mongoose

我有一组书签(我的代码中简称书),当我打电话给@ books.remove(书)时,永远不会发送DELETE请求。我可以看到我的收藏更新 - 模型已经消失,但请求未发送。 POST和GET工作正常。

我正在使用Node,MongoDB和Mongoose。

我感觉它与我正在使用的id有关 - 这让我有点困惑。

我有mongoose id:“_ id”,然后是一个引用烂番茄API的电影ID的ID:“rottenID”

<小时/> 以下是我的JSON GET响应示例:

[{"_id":"5484961502c054fb59dea18a","rottenId":771364788,"__v":0}]

<小时/> 这是我的模型:

class Bookmark extends Backbone.Model
    idAttribute: "_id"
    url: "/api/movies/bookmarks

<小时/> 这是我的收藏:

class BookmarksCollection extends Movies
     model: Bookmark

<小时/> 在我的视图中删除图书:

book = @books.where({rottenId: id})
@books.remove(book)

以下是控制台中的内容:

IMG http://i59.tinypic.com/23vnlv5.png


我在下面的帖子中看到了其他有此问题的人,但我似乎无法让他们的解决方案适合我:

Backbone.js DELETE request not firing

RESTful Express Mongoose & Backbone - Backbone model.remove() not working

backbone model.destroy not triggering a DELETE request

1 个答案:

答案 0 :(得分:1)

book = @books.findWhere({rottenId: id})
@books.remove(book)

完全按照说法执行,它会从book中移除@books。但是,从集合中删除模型与从服务器中删除模型无关。如果要删除book实例,则需要执行

book = @books.findWhere({rottenId: id})
book.destroy();

还具有自动从集合中删除模型的副作用。