2016-03-07 61 views
0

我正在學習BackboneJS。在下面的代碼this.at(0).destroy();:用REST後端我想發出一個HTTP一致DELETEBackboneJS:REST DELETE不會觸發destroy()

var Task = Backbone.Model.extend({ 
    defaults: { 
    name: 'Testing Just', 
    }, 
    url: 'http://localhost:8080/todos/', 
}); 

var Tasks = Backbone.Collection.extend({ 
    model: Task, 
    url: 'http://localhost:8080/todos/' 
}); 

var tasks = new Tasks(); 
tasks.fetch({ 
    context: tasks 
}).done(function() { 
    console.log("Tasks:" + this.length) 
    console.log(this.at(0).get('name')); 
    this.at(0).destroy(); 
    console.log("Tasks:" + this.length); 
    console.log(this.at(0).get('name')); 
}); 

該模型是從集合中刪除,但沒有休息DELETE發生到後端。 REST後端的刪除與'localhost:8080/todos/0'一起使用。 請告訴我缺少的東西。

+2

您的模型有ID嗎? –

回答

0

對REST後端的刪除工作與「本地主機:8080 /待辦事項/ 0」

你可能認爲主幹發出基於收集,模型的指數,這是不是這樣的請求。附加到收集網址的參數是該模型的idid是主幹用於檢查模型是否被保留的。

您的模型可能沒有id屬性或idAttribute集合,因此backbone認爲模型尚未保存在持久層中,因此不需要發出DELETE請求。

+0

謝謝!現在我瞭解到,在模型中沒有ID,骨幹不考慮持久性,只能樂觀地從集合中刪除它。 – Tudor