我有一组书签(我的代码中简称书),当我打电话给@ 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
答案 0 :(得分:1)
book = @books.findWhere({rottenId: id})
@books.remove(book)
完全按照说法执行,它会从book
中移除@books
。但是,从集合中删除模型与从服务器中删除模型无关。如果要删除book
实例,则需要执行
book = @books.findWhere({rottenId: id})
book.destroy();
还具有自动从集合中删除模型的副作用。