2012-04-18 134 views
1

我正在採取與Backbone.js我的第一步,其中之一涉及到能夠從集合中刪除項目,更重要的是,檢索該項目。該Backbone.Collection.remove方法只是返回原始集合與已刪除項目,所以此刻我在去除之前獲得所需項目的引用:從Backbone.Collection.remove(n)檢索元素

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

您可以在Backbone.Collection'type'中添加一個函數,並在您創建的每個集合上使用removeModel。

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

var removedModel = collection.removeModel(model); 
+0

我一直在努力得到這個工作:http://stackoverflow.com/questions/12895176/extending-backbone-collection-prototype – sunwukung 2012-10-15 12:13:00