从Backbone.Collection.remove(n)中检索元素

时间:2012-04-18 22:47:05

标签: javascript collections backbone.js

我正在使用Backbone.js迈出第一步,其中一个步骤涉及能够从集合中删除项目,更重要的是,检索该项目。 Backbone.Collection.remove方法只返回删除了项目的原始集合,所以目前我在删除之前获得了对所需项目的引用:

var Collection = Backbone.Collection.extend(...array of Backbone.Models...),
    removedItem = Collection.get(3);
console.log(Collection.remove(3));//same collection sans #3

我的问题是,是否有一个简便的方法来检索删除项目?

编辑:JFTR,我已经阅读了相当多的来源,并且知道原始方法返回对集合的引用 -

remove: function(models, options) {
  // <snip for brevity>
  // chain pattern incoming
  return this;
},

我觉得它没有返回删除的项目,这似乎很奇怪。所以我只是想知道是否还有其他方法我缺少,或者是实现这种模式的常用方法。这不是我第一次使用一个长期的解决方法,当API有一些秘密的doohickey它的袖子......因为它是我可能会延长课程。

1 个答案:

答案 0 :(得分:1)

您可以向Backbone.Collection'type'添加一个函数,并在您创建的每个集合上使用removeModel。

Backbone.Collection.prototype.removeModel(model) {
    var _model = this.get(model);
    this.remove(item);
    return _model;
}

var removedModel = collection.removeModel(model);