我正在使用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它的袖子......因为它是我可能会延长课程。
答案 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);