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
...
}
可能重复: