1

我正在使用 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 在它的袖子里……因为我可能会扩展这个类。

4

1 回答 1

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);
于 2012-04-19T07:37:48.447 回答