将 backbone 集合与 returns 对象的休息路线一起使用
Using backbone collections with a rest route that returns an object
查看示例代码
var accounts = new Backbone.Collection;
accounts.url = '/accounts';
accounts.fetch();
如果路由 returns 数组
[{id:1, name:'bob'}, {id:2, name:'joe'}]
但是我正在使用的 REST 服务returns像这样的对象
{
items: [{id:1, name:'bob'}, {id:2, name:'joe'}],
page: 1,
href: '/acounts'
}
如何告诉 Backbone.Collection
集合在 items
中?
解析函数似乎很合适。
来自文档:
http://backbonejs.org/
“当从 API 中获取原始 JSON 数据时,集合将自动使用数组格式的数据填充自身,而模型将自动使用对象格式的数据填充自身:
[{"id": 1}] ..... 用一个模型填充集合。
{"id": 1} ....... 用一个属性填充模型。
但是,经常会遇到 API 的 return 数据格式与 Backbone 预期不同的情况。例如,考虑从 API 中获取一个集合,其中 return 是包裹在元数据中的真实数据数组:
{
"page": 1,
"limit": 10,
"total": 2,
"books": [
{"id": 1, "title": "Pride and Prejudice"},
{"id": 4, "title": "The Great Gatsby"}
]
}
在上面的示例数据中,集合应该使用 "books" 数组而不是根对象结构来填充。使用 returns(或转换)API 数据的所需部分的解析方法可以很容易地协调这种差异:
var Books = Backbone.Collection.extend({
url: '/books',
parse: function(data) {
return data.books;
}
});
"
希望对您有所帮助。
查看示例代码
var accounts = new Backbone.Collection;
accounts.url = '/accounts';
accounts.fetch();
如果路由 returns 数组
[{id:1, name:'bob'}, {id:2, name:'joe'}]
但是我正在使用的 REST 服务returns像这样的对象
{
items: [{id:1, name:'bob'}, {id:2, name:'joe'}],
page: 1,
href: '/acounts'
}
如何告诉 Backbone.Collection
集合在 items
中?
解析函数似乎很合适。
来自文档: http://backbonejs.org/
“当从 API 中获取原始 JSON 数据时,集合将自动使用数组格式的数据填充自身,而模型将自动使用对象格式的数据填充自身:
[{"id": 1}] ..... 用一个模型填充集合。 {"id": 1} ....... 用一个属性填充模型。 但是,经常会遇到 API 的 return 数据格式与 Backbone 预期不同的情况。例如,考虑从 API 中获取一个集合,其中 return 是包裹在元数据中的真实数据数组:
{
"page": 1,
"limit": 10,
"total": 2,
"books": [
{"id": 1, "title": "Pride and Prejudice"},
{"id": 4, "title": "The Great Gatsby"}
]
}
在上面的示例数据中,集合应该使用 "books" 数组而不是根对象结构来填充。使用 returns(或转换)API 数据的所需部分的解析方法可以很容易地协调这种差异:
var Books = Backbone.Collection.extend({
url: '/books',
parse: function(data) {
return data.books;
}
});
"
希望对您有所帮助。