0

コレクションを作成しようとしていますが、プッシュする数がわからないため、動的に作成する必要があります。現在私がしていることは;

var DataCollection = Backbone.Collection.extend({
            model : dataModel
        });

        var dataModel = Backbone.Model.extend({
            defaults : {
                dataID : 'unknown',
                text : 'unknown',

            }
        });


        var linkPrev = new dataModel({ dataID: "Prev", text: "Prev" });
        var link1 = new dataModel({ dataID: "1", text: "1" });
        var link2 = new dataModel({ dataID: "2", text: "2" });
        var link3 = new dataModel({ dataID: "3", text: "3" });
        var linkNext = new dataModel({ dataID: "Next", text: "Next" });

        var myDataCollection = new DataCollection();
        //myDataCollection.push(linkPrev);
        myDataCollection.push(link1);
        myDataCollection.push(link2);
        myDataCollection.push(link3);
        myDataCollection.push(linkNext);

手動で言う代わりに

link1 = new dataModel({ dataID: "1", text: "1" }); 
myDataCollection.push(link1);

これを動的にリストを作成できますか。

たとえば、4つのリンクがある場合、link4にdataID:4、TextID:4...などを追加します。

4

1 に答える 1

2

初期化中にコレクションにデータを入力する必要がある場合は、オブジェクトの配列を渡してデータを入力するだけで済みます。オブジェクトごとにモデルを作成する必要はありません。Backbone.Collectionがそれを行います。

var DataCollection = Backbone.Collection.extend({
    model : DataModel
});

var DataModel = Backbone.Model.extend({
    defaults : {
        dataID : 'unknown',
        text : 'unknown'
    }
});

var myDataCollection = new DataCollection([
    { dataID: "Prev", text: "Prev" },
    { dataID: "1", text: "1" },
    { dataID: "2", text: "2" },
    { dataID: "3", text: "3" },
    { dataID: "Next", text: "Next" }
]);
于 2012-10-19T08:13:22.860 に答える