2015-07-22 39 views
2

我有一個數組定義爲:如何將數組轉換爲Collection骨幹

this.noOfHouseHold = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"]; 

我試圖將其轉換爲一個骨幹集合爲:

var adultListCollection = new Backbone.Collection(this.noOfHouseHold); 

它給我的列表,但爲2位數字,它顯示這樣的事情:

attributes: Object 
0: "1" 
1: "1" 

我無法理解這裏有什麼錯或是我以錯誤的方式將我的數組轉換爲集合。請建議。提前致謝!

回答

2

Backbone集合需要一個可以轉換爲模型的屬性的模型/哈希列表,但您有一個普通數組。你將不得不將你的數組轉換爲散列列表。假設你的值在id是你的模型:

+0

謝謝,工作! –

+0

萬分感謝!!!!尋找這個 – aleXela

0

Backbone.Collection期望的模型或對象的列表(因爲它們可以轉換爲Backbone.Model)。爲了堅持數組,你必須將這些原語轉換成對象。使用Backbone.Collection.parse_.map把你的原語的數組對象的數組:

var AdultListCollection = Backbone.Collection.extend({ 
    parse: function (noOfHouseHold) { 
    var res = _.map(noOfHouseHold, function (n) { 
     return {id: n}; 
    }); 
    return res; 
    } 
}); 

現在你可以使用數組實例化你的收藏:

var adultListCollection = new AdultListCollection(this.noOfHouseHold, {parse: true}); 

例子:JSFiddle