我有一个返回模型集合的API,但它不是Backbone所期望的传统格式 - 一组模型。相反,集合中有一些全局属性,然后模型位于分配给集合属性的数组中。像这样:
{
foo: 'bar',
models: [
{ id: 1, prop1: 'abc' },
{ id: 2, prop1: 'xyz' },
{ id: 3, prop1: '123' }
]
}
我无法更改API,因此我必须使用此数据格式。如何按摩数据,以便Backbone集合只获得模型数组?我和模型有类似的情况,只是写了一个自定义的toJSON()方法,它返回带有模型数据的正确属性,但这似乎不适用于此。
答案 0 :(得分:2)
你需要覆盖你的集合parse
method,在那里你得到整个响应对象,你需要返回一个Backbone将用来填充你的集合的数组:
var MyCollection = Backbone.Collection.extend({
parse: function(response) {
return response.models;
}
});