1

我有一个返回模型集合的 API,但它不是 Backbone 期望的传统格式 - 模型数组。相反,集合有一些全局属性,然后模型位于分配给集合属性的数组中。像这样的东西:

{
    foo: 'bar',
    models: [
        { id: 1, prop1: 'abc' },
        { id: 2, prop1: 'xyz' },
        { id: 3, prop1: '123' }
    ]
}

我无法更改 API,所以我必须接受这种数据格式。如何处理数据,以便 Backbone 集合只获得模型数组?我在模型中遇到过类似的情况,只是编写了一个自定义 toJSON() 方法,该方法使用模型数据返回正确的属性,但这似乎在这里不起作用。

4

1 回答 1

2

您需要覆盖您的集合的parse方法,您可以在其中获得整个响应对象,并且您需要返回一个数组,Backbone 将使用该数组来填充您的集合:

var MyCollection = Backbone.Collection.extend({
    parse: function(response) {
        return response.models;
    }
});
于 2013-09-07T20:13:02.577 回答