2012-02-20 7 views
2

ビューのinitialize機能でバックボーンコレクションを再編成する方法を見つけようとしています。私のコレクションでは私のような属性を持つモデルを持っている:初期化時にバックボーンコレクションを並べ替える

id: ..., 
name: ..., 
sort: 2, 
parent: 45 

parentプロパティは、私が興味を持って何である私は、コレクションの先頭に45のparent IDを持つすべてのモデルを移動したいと思います。 200台のモデルがあり、30台には45台の親があり、15台には50台の親があります...私はそれが以前と同じ順序で移動するチャンクを保持したいと思います(sort私はその元の順序でそれを保持したいと思います)。

アイデア?

答えて

4

使用し、アンダースコアのgroupBy

var mySorted = _.groupBy(collection.models, function (model) { 
    return model.get('parent') === 45 ? 'top' : 'rest' ; 
}); 

その後mysorted.topは45 mySorted.restは明らかに残りの部分を含む親を持つすべてのものが含まれています;)

0

あなたのクラスに新しいcomparatorを定義してください。これにより、希望どおりの順序でコレクションが保持されます。

関連する問題