无法将模型添加到主干集合

Mat*_*hew 3 javascript collections equals backbone.js

我有一个具有一堆属性的模型,但这里有两个感兴趣的idkey.key永远是独一无二的,id而不是那么多.当我尝试向id集合中添加多个具有相同模型的模型时,我收到此错误:

Uncaught Error: Can't add the same model to a collection twice
Run Code Online (Sandbox Code Playgroud)

我猜这是因为骨干正在使用它id来决定两个模型是否存在===.那是对的吗?如果有,有没有办法覆盖这种行为,而无需交换idkey属性的名称?我尝试搞乱这个系列,comparator但无济于事......

Jul*_* D. 8

是的,骨干使用和管理id模型的属性以进行识别.如果您的数据使用不同的属性,则可以将模型设置为idAttribute属性的名称,以使主干从此属性读取id:

var Entry = Backbone.Model.extend({
    idAttribute: "key"
});

var entry = new Entry({ key: 1, name: "an entry" });
alert("entry id: " + entry.id);
Run Code Online (Sandbox Code Playgroud)

但是,您不能同时将模型的id属性用于其他任何内容.