2014-12-07 68 views
1

我有一個書籤集合(我的代碼中的書籍簡稱),當我呼叫call @ books.remove(book)時,DELETE請求永遠不會發送。我可以看到我的收藏更新 - 模型已消失,但請求未發送。 POST和GET工作正常。Backbone model.remove not sending DELETE

我正在使用Node,MongoDB和Mongoose。

我有一個感覺,它與我正在使用的id(s)有關 - 這讓我有點疑惑。

我有貓鼬ID: 「_id」,然後一個ID引用電影ID爲爛番茄API: 「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
book = @books.findWhere({rottenId: id}) 
@books.remove(book) 

不正是它說,它會從@booksbook。但是,從集合中刪除模型與從服務器中刪除模型無關。如果你想刪除book情況下,你需要做的

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

其中也有自動從集合中移除該模型的副作用。

+0

感謝loganfsmyth - 我試過這個,但我得到「未捕獲TypeError:undefined不是一個函數」 - 任何想法這裏怎麼了?我可以註銷書籍var並顯示一個對象存在? – Ben 2014-12-07 19:25:25

+0

我意識到我得到了未定義的錯誤,因爲我的@ books.where({rottenId:id})給了我一個包含模型的對象......不是模型本身,所以當我做了「book =(@books。其中({rottenId:id}))[0]「我能夠獲得模型本身。我猜如果我需要這樣做,但我也在做其他錯誤? – Ben 2014-12-07 19:30:44

+0

哦,對,你需要做'.findWhere'才能得到一個實例。 – loganfsmyth 2014-12-07 19:31:22