查看示例代码
var accounts = new Backbone.Collection;
accounts.url = '/accounts';
accounts.fetch();
如果路由返回数组
,则有效[{id:1, name:'bob'}, {id:2, name:'joe'}]
但我正在使用的REST服务返回一个像这样的对象
{
items: [{id:1, name:'bob'}, {id:2, name:'joe'}],
page: 1,
href: '/acounts'
}
如何告诉Backbone.Collection
该集合位于items
?
答案 0 :(得分:2)
解析功能似乎合适。
从文档中: http://backbonejs.org/
"从API获取原始JSON数据时,Collection会自动使用格式化为数组的数据填充自己,而Model将自动填充格式为对象的数据:
[{" id":1}] .....用一个模型填充Collection。 {" id":1} .......用一个属性填充模型。 但是,遇到以不同于Backbone所期望的格式返回数据的API相当普遍。例如,考虑从返回包含在元数据中的真实数据数组的API中获取Collection:
{
"page": 1,
"limit": 10,
"total": 2,
"books": [
{"id": 1, "title": "Pride and Prejudice"},
{"id": 4, "title": "The Great Gatsby"}
]
}
在上面的示例数据中,Collection应该使用" books"数组而不是根对象结构。使用返回(或转换)API数据的所需部分的解析方法可以轻松地协调这种差异:
var Books = Backbone.Collection.extend({
url: '/books',
parse: function(data) {
return data.books;
}
});
"
希望它有所帮助。