コレクションを 2 つの属性で並べ替えたいと考えています。1 つは true または false を返す「complete」属性で、もう 1 つは ID による属性ですが、降順にする必要があります。これを行う方法はありますか?
質問する
339 次
1 に答える
2
はい、そのようなことができます。コレクションcomparator
は、引数が 1 つまたは 2 つの関数を取ります。
比較関数は、 sortBy (1 つの引数を取る関数を渡す) またはソート(2 つの引数を受け取る比較関数を渡す)として定義できます。
次のような 2 つの引数の形式を使用することをお勧めします。
comparator: function(a, b) {
var ac = a.get('complete');
var bc = b.get('complete');
if(ac && !bc)
return 1;
if(!ac && bc)
return -1;
var as = a.get('seconds');
var bs = b.get('seconds');
if(as > bs)
return -1;
if(bs < as)
return 1;
return 0;
}
2 引数関数を理解しない古いバージョンの Backbone を使用しているcomparator
場合は、アップグレードするか、マッシュアップする方法を見つけてcomplete
、アンダースコアのseconds
で適切にソートされる単一のソート キーにする必要があります。sortBy
于 2012-05-01T05:03:13.557 に答える