0

コレクションを 2 つの属性で並べ替えたいと考えています。1 つは true または false を返す「complete」属性で、もう 1 つは ID による属性ですが、降順にする必要があります。これを行う方法はありますか?

4

1 に答える 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 に答える