2011-11-21 12 views
10

this stackoverflow post私は、バックボーンコレクションのフィルタリングとサブセットの使用について読んでいます。Backbone.jsのBackbone.Subset.jsを実装して親コレクションのモデルをフィルタリングする

1つの答え(スレッドによる)は、backbone.subset.jsusage example)の使用を推奨します。

私はbackbone.subset.jsでそれ以上のリソースを見つけることができませんでした。私は自分のプロジェクトに実装できませんでした。

backbone.subset.jsは私が達成しようとしているもののための完璧な解決策です。

(すべての回ですべてのモデルを保持している一つの「親」のコレクションを持つこと、そしてbackbone.subsetコレクションに親コレクションから関連するモデルをフィルタリングユーザの入力に応じて。)

私の「親」のコレクション、すべてのタスクを保持する:

var TasksAll = Backbone.Collection.extend({ 
    url: '/tasks', // the REST url to retrieve collection data 
    model: Task // the models of which the collection consists of 
}); 
var allTasks = new TasksAll(); 

ここで、私はサブセットコレクションを作成したいと思います。

this.get('status') == 0 

a)はbackbone.subset.js上の任意のより多くのリソースがあります場合は、タスクモデル内の一方

var TasksTrash = new Backbone.Subset({ 
    superset: allTasks, 
    filter: function(Task) { 
     return Task.isTrash(); 
    } 
}); 
var trashTasks = new TasksTrash(); 

、メソッド "isTrashは" trueを返す:task.status = 0のタスク?

b)上記のシナリオを実装するにはどうすればよいですか?

c) 'superset'と 'filter'オプションをparbとしてBackbone.Subset init関数に渡すことはできますか?

d)私は親コレクションをリセットするときにbackbone.subset.jsコードを調べました。私のサブセットコレクションはすぐに更新されるべきですか?

PS:私はかなりバックボーンが新しくなっています。ご協力いただきありがとうございます。

+1

https://github.com/masylum/Backbone.Subsetこのバージョンはペーストバージョンよりも維持されています。 (私はバックボーンも新しく、他の質問に答えることはできません) – number5

答えて

2

あなたはオプションまたは引数として「ふるい」やフィルタを使用できるようにするために利用することができる前の初期化フックがあるかのように、バックボーン・サブセットのソースを見ると、それが見えます:

https://github.com/masylum/Backbone.Subset/blob/master/backbone.subset.js#L50あなたが親に渡すことができ、それにより

https://github.com/masylum/Backbone.Subset/pull/5

:引数として親を提供するよう

は、その正確な機能を追加するための優れたパッチがありますオプションでない場合、ライブラリはオブジェクト上でそれを探すためにフォールバックします。プロトタイプ

関連する問題