我的情况是我需要为一个人保存几个对象,但是一次只保存一个对象,并且在获取时,我将所有对象与人的信息一起作为一个数组。
模型的外观如下:
//Model for one save
{
personID: 1,
personName: 'John Doe',
score: [
{
subject: 'English',
marks: 30
}
]
}
Fetch返回这样的集合,我只需要在UI上呈现标记作为列表:
//Collection of marks for a person
{
personID:1,
personName: 'John Doe',
score: [
{
subject: 'English',
marks: 30
},
{
subject: 'Maths',
marks: 30
},
{
subject: 'Geography',
marks: 30
}
]
}
这个结构的问题是我无法在已经渲染的集合中插入模型,因为结构不同,因此UI不会更新。
如何以更好的方式构建它?或者,我可以将标记对象视为模型,并仅使用集合进行保存/更新吗?
答案 0 :(得分:1)
通过在Backbone模型中存储多级JSON,您将无法跟踪模型更改周围的事件。
我建议您创建一个分数Collection
和分数Model
,这将触发用户界面可以响应的事件。
如果您需要将人Model
与数据级别的分数Collection
相关联,则Backbone的一个很好的扩展可以解决这个问题:http://backbonerelational.org/