主干集合的模型对象结构不正确
Backbone collection's models-object incorrect structure?
我相信,在这个过程中,我的 Backbone 集合没有正确存储它们的模型。我还使用主干分页来分页集合,我的主干应用程序基于 https://github.com/alessioalex/ClientManager 和一些主干教程。
基本上,据我了解,骨干集合应该有一个模型属性,即:
Object
models: Array
0: Object
model
model, etc
但我的似乎有这样的结构:
Object
models: Array
0: Object
attributes: Object
tasks: Array (from my server JSON response)
total_match, etc (other variables for pagination)
因此,在我的模板中,我总是必须使用任务[0].each,而不仅仅是任务。
这也意味着,当将模型添加到集合时,它们不会添加到任务中的模型数组中,而是 Backbone 在模型中创建了另一个数组,使其变为:
Object
models: Array
0: Object
attributes: Object
tasks: Array (from my server JSON response)
total_match, etc (other variables for pagination)
1: Object
(new model attributes)
这意味着我的模板代码,搜索任务[0]没有选择它。这也意味着对于我的集合,我不能使用 collection.get(id),它不返回任何内容 - 即使使用正确的 ID 并为模型指定了 IDAttribute 也是如此。
我有点难倒。
您的服务器似乎返回了嵌套在 JSON 响应中的tasks
数组。 为了让 Backbone 知道如何正确解析 JSON,您需要覆盖 parse()
方法并告诉它使用 tasks
数组作为模型的源。
var MyModel = Backbone.Model.extend({});
var MyCollection = Backbone.Collection.extend({
model: MyModel,
parse: function(response) {
//tell Backbone to turn each element in 'tasks' into an instance of MyModel
return response.tasks;
}
});
相关文章:
- 嵌套对象结构
- 如何迭代json对象结构以只获取名称
- JSDoc:返回对象结构
- 关于JavaScript对象结构属性的问题
- 解解对象结构
- 主干集合的模型对象结构不正确
- 字符串化和解析 JSON(序列化对象结构)和反序列化,将 JSON 字符串转换为对象结构
- 柴断言测试对象结构是否至少包含其他对象结构
- Javascript 创建对象结构
- 基本对象结构和对 JavaScript 的调用
- 从对象结构中的子对象获取父对象
- 调整ng重复以匹配对象结构
- Backbone.js嵌套对象结构
- Javascript更改对象结构
- JavaScript-枚举嵌套对象结构
- 基本的JavaScript对象结构有助于访问属性
- 如何在JavaScript中注释对象结构?
- 如何将JSON对象结构转换为点表示法
- 将字符串(这是一个有效的对象结构,但不是一个有效的json结构)转换为对象
- Javascript对象结构