如何重写主干集合以返回子属性中的模型
How to override Backbone collection to return models in child property
我有一个返回模型集合的API,但它不是Backbone期望的传统格式 - 模型数组。 相反,集合有一些全局属性,然后模型位于分配给集合属性的数组中。 像这样:
{
foo: 'bar',
models: [
{ id: 1, prop1: 'abc' },
{ id: 2, prop1: 'xyz' },
{ id: 3, prop1: '123' }
]
}
我无法更改 API,所以我必须接受这种数据格式。 如何调整数据,以便 Backbone 集合仅获取模型数组? 我在模型上遇到过类似的情况,只是编写了一个自定义的 toJSON() 方法,该方法返回带有模型数据的正确属性,但这似乎在这里不起作用。
你需要覆盖集合的parse
方法,在那里你得到整个响应对象,你需要返回一个数组,Backbone 将使用这个数组来填充你的集合:
var MyCollection = Backbone.Collection.extend({
parse: function(response) {
return response.models;
}
});
相关文章:
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- jQuery可以't获取data-*属性值,返回undefined
- JavaScript-获取数据属性的值返回未定义的值
- angularjs如何从返回值中找到正确的属性
- 访问嵌套 json 对象的属性将返回未定义
- Javascript未返回样式属性
- 如何将返回一串数字的 JSON 属性转换为日期
- hasOwnProperty 在对照父对象属性进行检查时返回 true
- JavaScript 这返回未知属性
- img src 属性在为空时返回页面的 URL
- 窗口对象属性返回一个dom节点
- 根据其他属性返回的值设置属性
- 使用MeteorJS堆栈,如何使用对象的id返回该对象的属性
- 从具有最高值的对象返回属性
- jQuery on change don't返回属性值
- Java 脚本中的 getAttribute(attr) 方法返回属性的先前值
- 从函数返回属性映射
- 返回属性(XHR)未定义
- 如何返回属性名
- attr('value')返回属性值而不是属性值