2016-12-02 39 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

谢谢,这是我的问题的答案。 –