當我調用模型的骨幹銷燬方法時,我得到這個錯誤。骨幹破壞錯誤
A「URL」屬性或功能必須指定
我使用的是本地收集和我在網上看到的地方,保存方法是所謂的滅方法,尋找一個網址。有沒有解決的辦法。我怎樣才能防止錯誤發生。
當我調用模型的骨幹銷燬方法時,我得到這個錯誤。骨幹破壞錯誤
A「URL」屬性或功能必須指定
我使用的是本地收集和我在網上看到的地方,保存方法是所謂的滅方法,尋找一個網址。有沒有解決的辦法。我怎樣才能防止錯誤發生。
由於nrabinowitz
在評論中表示,銷燬是從服務器中刪除,並不會真正從集合中刪除,因爲它是。
如果問題是從集合刪除它,因爲它似乎在評論...
模型可以訪問它通過模型的collection
屬性的集合。
var Model = Backbone.Model.extend({
defaults:{ name: 'bob' }
}),
Collection = Backbone.Collection.extend({
model: Model
});
var c = new Collection([{ name: 'joe'}, {name: 'h'}, {name: 'bob'}]);
var m = c.at(1); // get model at index 1 name = h
m.collection.remove(m); // access the collection via the model we pulled out
console.log(c.length); // only 2 models within :)
謝謝你的回答;我沒有意識到模型有這個集合屬性。 我很好奇當模型被添加到多個集合時會發生什麼,所以我檢查了[source](http://backbonejs.org/docs/backbone.html#section-81),發現Collection._prepareModel將設置模型的集合屬性。因此,如果將相同的模型添加到多個集合中,則其集合屬性將指向它添加的最後一個。 – Aaron 2012-11-26 22:04:30
另外,我相信你的陳述「[摧毀]不會真正從集合中刪除」是不正確的。每[Model.destroy來源](http:// backbonejs。org/docs/backbone.html#section-59)和[Collection._onModelEvent source](http://backbonejs.org/docs/backbone.html#section-105),集合將對觸發的「銷燬」事件做出反應該模型。一個注意事項:通過destroy事件傳遞的collection參數反映了模型的集合屬性,_not_不一定是將事件轉發到其任何偵聽器的集合。 – Aaron 2012-11-26 22:14:27
我也有類似的問題。我的問題是,我使用的銷燬時的回調,以確定是否從coollection或不刪除模型:
this.model.destroy({
success: function(model, response) {
this.remove();
}
});
也就是說,從服務器返回Error 500
測試中,我得到了同樣的錯誤上我第二次嘗試致電銷燬。
該解決方案來自the manual。看起來雖然我沒叫this.remove();
,該模型從集合中刪除:
通行證{等待:真正}如果你想等待服務器從集合刪除模型前作出迴應。
結果看起來像這樣:
this.model.destroy({
wait: true,
success: function(model, response) {
this.remove();
}
});
什麼是你想實現什麼? 'destroy'方法的目的是刪除服務器*上的模型*。 – nrabinowitz 2012-03-07 22:34:47
我想刪除集合中的模型,但我沒有從我所在的代碼訪問集合。我認爲銷燬會工作,但它會導致錯誤,因爲模型沒有網址。所以我試圖找到一個解決方案。有沒有辦法從模型本身獲取模型所在的集合。 – Chapsterj 2012-03-07 22:47:09
集合有一個'remove'方法。 – JayC 2012-03-07 22:48:12