2012-04-18 10 views
1

私はBackbone.jsで私の最初の措置を講じています。そのうちの1つは、コレクションからアイテムを削除でき、さらに重要なのはそのアイテムを取得できることです。現時点では私は除去する前に、目的の項目への参照を取得していますので、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

関連する問題