2016-12-02 37 views
-1

我正在從一個REST API中檢索數據以用於我的Backbone.js應用程序的過程中。此時我不需要對數據進行任何操作,除了返回的數據是數組。但是,未來可能會帶來這樣的請求,所以我已經爲這種類型的數據創建了一個Backbone模型和集合。關於構造骨幹數組數據的建議

我讀過你可以將你的Array數據映射到你的Backbone集合中的一個對象,但是我想知道,因爲我已經有了一個模型,如果最好的做法是在我的Backbone模型中映射每個元素。

因爲我不是Backbone.js框架的專家,任何有關本節更多文檔的鏈接都將不勝感激。

更新:我實際上是在尋找由BackboneJS框架提供的解析方法。通過將數組轉換爲解析函數中的對象,我能夠解決這個問題。 您可以使用解析方法來解析您想要執行的任何類型的轉換,例如,複製的屬性,修改屬性等 的更多信息:http://backbonejs.org/#Collection-parse

+1

目前還不清楚_map Array數據到您的骨幹collection_中的對象是什麼意思,您能提供您正在使用的數據的格式或等效的數據 – mikeapr4

+0

此時我的數據從我的API作爲數組:['item1','item2','item3']我發現[這裏](http://stackoverflow.com/questions/31556954/how-to-convert-an-array-to-collection-in-backbone )我需要將我的數組映射到對象 –

回答

1

正如在question你所提到的,這可以通過使用parse實現,無論是在收集或模型。

var UserModel = Backbone.Model.extend({ 
 

 
    // String name is mapped to an object with the name property 
 
    parse: function(name) { 
 
    return { 
 
     name: name 
 
    }; 
 
    } 
 
}); 
 

 
var UserCollection = Backbone.Collection.extend({ 
 
    model: UserModel 
 
}); 
 

 
var collection = new UserCollection(['Ann', 'Joe', 'Jim', 'Bob'], {parse: true}); 
 
console.log(collection.at(0).get('name'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>

在上面的例子中,集合實例化的數據,在這種情況下,parse默認情況下不運行,所以它需要的選項來設置,但是,如果集合通常從fetch獲取其數據,默認情況下這將始終解析。

+0

謝謝,這是我的問題的答案。 –