簡體   English   中英

無法將模型添加到主干集合

[英]Cannot add a model to backbone collection

我有一個具有一堆屬性的模型,但這里感興趣的兩個是idkey key始終是獨一無二的, id沒有這么多。 當我嘗試將多個具有相同id模型添加到集合時,我收到此錯誤:

Uncaught Error: Can't add the same model to a collection twice

我猜這是因為骨干使用id來決定兩個模型是否=== 那是對的嗎? 如果是這樣,有沒有辦法覆蓋這種行為,而無需交換idkey屬性的名稱? 我試着亂搞集合的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM