BackboneJS如何删除Model数组的项目

时间:2014-10-23 12:49:42

标签: javascript backbone.js

我想删除/删除Backbone Model Array中的特定项目。我的模型返回此数据(json)

"data":  {
   "id": 16268,
   "releases":  [
      {"title" :"title1", "cover" : "some image", "releasedate": "some date"},
      {"title" :"title2", "cover" : "some image", "releasedate": "some date"},
      {"title" :"title3", "cover" : "some image", "releasedate": "some date"},
      {"title" :"title4", "cover" : "some image", "releasedate": "some date"},
      {"title" :"title5", "cover" : "some image", "releasedate": "some date"},
  ]
}

所以,我想说要删除/删除第二个条目。我试着这样做:

if(this.model.get('id') === 16268){
        if(this.model.get('releases')[1]) {
           this.model.remove();
        }
}

但没有运气。有人能告诉我如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

为了从数组中删除具有特定索引的元素,您必须使用数组splice方法。

为了在您的模型上触发"change"事件,您可以将Model set方法与Array的slice方法结合使用,该方法返回阵列。

因此代码删除数组元素应如下所示:

var arr = this.model.get('releases');
arr.splice(1, 1);
this.model.set('releases', arr.slice());

答案 1 :(得分:0)

创建"发布" model,然后向当前模型添加一个属性,该属性是一个发布集合(骨干集合)。之后,您可以根据需要操作集合。

感谢。