1

N枚の写真を表すバックボーンコレクションがあります。最初は、コレクション内のN枚の写真のうち写真がほとんどありません(Xとしましょう)。

次に、私のコレクションはサービスからN枚すべての写真を取得します。これらのNを使用してコレクションをリセットすることもできますが、問題は、既存のXに追加のメタデータがあり、それを失いたくないということです。そこで、これらのN枚の写真を既存のコレクションにマージしたいと思います。それ、どうやったら出来るの?

collection.add(N photos)を使ってみましたが、X枚の写真をそのままにして、最後に残り(NX)を追加します。サービスによって返されるN枚の写真の順序を維持し、これらの既存の写真をN枚の写真にマージしたいと思います。

4

1 に答える 1

0

comparatorこれにはコレクションを使用できるはずです。

コンパレータ collection.comparator

デフォルトでは、コレクションのコンパレータはありません。コンパレーターを定義すると、コレクションをソートされた順序で維持するために使用されます。これは、モデルが追加されると、モデルがの正しいインデックスに挿入されることを意味しますcollection.models

したがって、あなたがする必要があるのは、あなたが電話comparatorをする前にあなたのコレクションが物事の順序を知っていることを確認することです。大まかな概念実証は次のようになります。Nadd

// `incoming` is the new data, `c` is the collection.
for(var i = 0, rev = { }; i < incoming.length; ++i)
    rev[incoming[i].id] = i;
c.comparator = function(m) {
    return rev[m.id];
};
c.add(incoming);

実際のバージョンは、おそらくコレクション内にまとめられます。

デモ: http: //jsfiddle.net/ambiguous/dCZbv/

于 2013-03-12T03:53:47.533 に答える