2012-12-26 74 views
4

這是我的模型。backbone model.destroy不觸發DELETE請求

library.BookModel = Backbone.Model.extend({ 
    urlRoot: '/api/books', 
    defaults: { 
     id  : null, 
     imageurl: 'noimage.jpg', 
    } 
}); 

我試圖通過調用book.destroy發出刪除請求。但它不會觸發請求。當應用程序初始化。該模型用來自服務器的數據填充。在模型中設置了兩個ID屬性。 id(客戶端ID)和_id(mongodb ID)。我在模型初始化函數中將客戶端ID初始化爲book.attributes.id = book.attributes._id。所以一切都設定好了。但我似乎無法啓動刪除請求。請告訴我我哪裏出錯了。我在這裏錯過了什麼嗎?

我的後端路由器被定義爲這樣來處理刪除請求。

app.delete('/api/books/:id', function(req, res){...});

+0

嘗試把prayd的答案中提到的「idAttribute:'_id'」。 – anit

回答

16

請嘗試使用idAttribute這對於你的情況(MongoDB的)是_id id屬性。這是服務器設置的ID。

library.BookModel = Backbone.Model.extend({ 

    urlRoot: '/api/books', 

    idAttribute: '_id', 

    defaults: { 
     imageurl: 'noimage.jpg', 
    } 

}); 

通過骨幹在客戶機上自動設置ID是cid,而不是ID。可以使用cid,直到模型在服務器上同步並獲取服務器ID。

+1

'idAttribute',寫完整屬性名稱'idAttr'可能不起作用。 – anit

+0

@anitrai更新。謝謝! – Pramod

+0

嘿謝謝。它現在的作品:) – jaykumarark