1

以下に示すように、配列からモデルのコレクションを作成しました。私たちの質問は次のとおりです。コレクションは、元の配列に存在していたのと同じ要素/モデルの順序を保持しますか? つまり、Collection で (ソース配列の) 同じ順序が保証されているか?

    var colorsData = [
    {
        name: 'red'
    },
    {
        name: 'blue'
    },
    {
        name: 'green'
    },
    .....
    .....
    .....
    //other colors
];

    var Color = Backbone.Model.extend({
        defaults: {
            name: 'white'
        }
    });

    var ColorCollection = Backbone.Collection.extend({
        model: Color
    });

    var colorCollection1 = new ColorCollection(colorsData); //creating a collection from the source array colorsData.
4

2 に答える 2

3

私が集めることができるすべてから、はい aCollection要素の元の順序を保持します。

コレクションの注釈付きソースを読んで、時々魔法のようにシャッフルされていないことを自分で確認できます。atunshiftpop、などの関数は、pushこれを明確に示しています。

の注釈付きソースを読むことができますparse。これは、たとえばfetch-oprationsの後にサーバーからの応答を解析するために使用されます。

parse: function(resp, xhr) {
  return resp;
},

コレクションに渡されたものがどこにもシャッフルされないことを確認するため。addresp は、自然な順序で応答を処理する関数に渡されます。

于 2012-08-17T07:25:50.543 に答える
1

http://backbonejs.org/#Collectionに記載されているとおり

collection.at(index)モデルを挿入順に取得します。

于 2012-08-17T06:43:10.537 に答える