Javascript 将模型添加到集合不起作用

Javascript 将模型添加到集合不起作用,javascript,backbone.js,Javascript,Backbone.js,我正试着用我的脊梁骨玩耍,似乎遇到了问题。我的事件正在触发,但集合未更新。我已经在下面介绍了事件回调,但可以在这里看到整个示例: 我做错了什么?它忽略了新项目,因为它有重复的id。这应该可以修复它(): 是主干文档中的相关注释: 如果要向集合中已存在的模型添加模型,则将忽略它们,除非传递{merge:true},在这种情况下,它们的属性将合并到相应的模型中 问题是您正在添加具有重复ID的项 如果执行以下操作,它将起作用: this.collection.add({ "id": "p"+M

我正试着用我的脊梁骨玩耍,似乎遇到了问题。我的事件正在触发,但集合未更新。我已经在下面介绍了事件回调,但可以在这里看到整个示例:


我做错了什么?

它忽略了新项目,因为它有重复的id。这应该可以修复它():

是主干文档中的相关注释:

如果要向集合中已存在的模型添加模型,则将忽略它们,除非传递{merge:true},在这种情况下,它们的属性将合并到相应的模型中


问题是您正在添加具有重复ID的项

如果执行以下操作,它将起作用:

this.collection.add({
    "id": "p"+Math.random(), // Just an example, of course!
    "name" : "ghgjhj",
    "title" : "EsssyyyyEEE",
    "background" : "ssssFyFFF"
 });
理想情况下,您可能根本不需要声明
id
,而是让主干网来处理:

this.collection.add({
    "name" : "ghgjhj",
    "title" : "EsssyyyyEEE",
    "background" : "ssssFyFFF"
});
您还可以使用收藏的
长度
设置新id:

var id = this.collection.length + 1;
this.collection.add({
   "id": "p" + id, 
   "name" : "ghgjhj",
   "title" : "EsssyyyyEEE",
    "background" : "ssssFyFFF"
});

谢谢我不知道合并选项。
this.collection.add({
    "name" : "ghgjhj",
    "title" : "EsssyyyyEEE",
    "background" : "ssssFyFFF"
});
var id = this.collection.length + 1;
this.collection.add({
   "id": "p" + id, 
   "name" : "ghgjhj",
   "title" : "EsssyyyyEEE",
    "background" : "ssssFyFFF"
});