[英]Cannot add a model to backbone collection
我有一個具有一堆屬性的模型,但這里感興趣的兩個是id
和key
。 key
始終是獨一無二的, id
沒有這么多。 當我嘗試將多個具有相同id
模型添加到集合時,我收到此錯誤:
Uncaught Error: Can't add the same model to a collection twice
我猜這是因為骨干使用id
來決定兩個模型是否===
。 那是對的嗎? 如果是這樣,有沒有辦法覆蓋這種行為,而無需交換id
和key
屬性的名稱? 我試着亂搞集合的comparator
但無濟於事......
是的,骨干使用和管理模型的id
屬性以進行識別。 如果您的數據使用不同的屬性,則可以將模型的idAttribute
設置為屬性的名稱,以使主干從此屬性讀取id:
var Entry = Backbone.Model.extend({
idAttribute: "key"
});
var entry = new Entry({ key: 1, name: "an entry" });
alert("entry id: " + entry.id);
但是,您不能同時將模型的id
屬性用於其他任何內容。
Backbone阻止我們將相同的模型插入到一個集合中......您可以在backbone.js第676行到第700行中看到它
如果你真的想在集合中插入相同的模型,只需刪除那里的代碼
if(existing = this.get(model)){//here
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.