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

Javascript 无法将模型添加到主干集合,javascript,collections,backbone.js,equals,Javascript,Collections,Backbone.js,Equals,我有一个模型,它有一系列属性,但这里感兴趣的两个是id和key键总是唯一的,id没有那么多。当我尝试向集合中添加多个具有相同id的模型时,会出现以下错误: Uncaught Error: Can't add the same model to a collection twice 我猜这是因为主干网使用id来决定两个模型是否为=。对吗?如果是,有没有一种方法可以在不交换id和key属性名称的情况下覆盖此行为?我试图摆弄集合的比较器,但无济于事……是的,主干使用并管理模型的id属性进行识别。如果

我有一个模型,它有一系列属性,但这里感兴趣的两个是
id
key
<代码>键总是唯一的,
id
没有那么多。当我尝试向集合中添加多个具有相同
id
的模型时,会出现以下错误:

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

我猜这是因为主干网使用
id
来决定两个模型是否为
=
。对吗?如果是,有没有一种方法可以在不交换
id
key
属性名称的情况下覆盖此行为?我试图摆弄集合的
比较器
,但无济于事……

是的,主干使用并管理模型的
id
属性进行识别。如果数据使用不同的属性,可以将模型的设置为属性的名称,以使主干从该属性读取id:

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

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

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

主干阻止我们将同一型号插入一个集合。。。您可以在backbone.js第676行到第700行中看到它

如果您真的想在集合中插入相同的模型,只需删除其中的代码

if(existing = this.get(model)){//here
      ...
}
可能重复: