2012-06-03 53 views
3

我有一個非常基本的骨幹(示例)應用程序,只是創建和銷燬模型項目。創建模型時,對象會持續POST到Web服務器,但是當模型被銷燬時,沒有DELETE發送到服務器?任何想法,爲什麼這可能是?骨幹爲什麼不發送刪除?

非常基本的模式:

window.User = Backbone.Model.extend({ 
    urlRoot: 'users' 
}); 

我的測試代碼只是爲了創建和刪除模型:

var model = null; 

$(".add").click(function(){ 
    if (model == null) { 
    model = new window.User; 
    model.set({name: 'meeee'}); 
    model.save(); 
    } 
}); 

$(".remove").click(function(){ 
    if (model != null) { 
    model.destroy(); 
    } 
}); 

JSON響應創建模型似乎不錯過多時:

enter image description here

+3

你的服務器如何響應'save'請求?如果模型沒有「.id」屬性(服務器應該在保存時返回),它不會發送任何請求。 – Esailija

+0

更新了json響應截圖的問題。 – Nippysaurus

回答

12

骨幹不知道_id是您使用的名稱對於你的id域,除非你以某種方式修改了你的Backbone.js副本(請不要)。要告訴Backbone您的ID字段的名稱對於某些特定型號是什麼,idAttribute在您的型號定義中。否則,它默認爲常規id

如果沒有「身份」字段集,Backbone會考慮模型實例「isNew」(一個尚未持久保存到服務器的模型實例),所以當沒有「身份」時你的情況,因爲它不知道你的身份是_id),所以不需要在服務器上銷燬它。

+0

我覺得有點尷尬,我沒有注意到下劃線...這幾乎肯定是問題。對你的「請不要」有一點笑意:-) – Nippysaurus