0

リンクされたアイテムを含む BackboneJS コレクションをソートする方法がわかりません。効率的に行うことはまったく可能ですか?(前の要素のカウントを返すものを作ろうと思っていますが、それは本当に非効率的です)

コンパレータはどうあるべきですか?- 二重リンクリストが必要ですか?

私のアイテムは次のように見えます

[ { id: 1, name: 'name', previousItem: 2 }, { id: 2, name: 'othername', previousItem: null } ]

4

2 に答える 2

1

コレクションを構築するための基本的なコードは次のとおりです。ここではバックボーンモデルを使用していると想定しています。ループでは、前のアイテムしか知らないため、モデルをコレクションの先頭に追加する(シフトを解除する)必要があります。

ここで重要なのは、最後の項目が何であるかを知ることです。あなたがそれを知らなければ、これはうまくいきません。

model = frontItem;
while (model != null) {
   collection.unshift(model);
   model = model.attr('previousItem')    
}
于 2013-02-23T23:41:09.390 に答える
0

githubでこれに関する議論があります。コンパレーターを使用することもできます。コンパレーターを使用する場合はアンダースコアが必要です

var PhotoCollection = Backbone.Collection.extend({
    model: Photo,
    comparator: function(item) {
        return item.get('pid');
    }
});
于 2013-02-23T23:24:35.927 に答える