Backbone - 模型中的对象数组?

时间:2016-10-07 10:27:46

标签: javascript backbone.js

我的情况是我需要为一个人保存几个对象,但是一次只保存一个对象,并且在获取时,我将所有对象与人的信息一起作为一个数组。

模型的外观如下:

//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不会更新。

如何以更好的方式构建它?或者,我可以将标记对象视为模型,并仅使用集合进行保存/更新吗?

1 个答案:

答案 0 :(得分:1)

通过在Backbone模型中存储多级JSON,您将无法跟踪模型更改周围的事件。

我建议您创建一个分数Collection和分数Model,这将触发用户界面可以响应的事件。

如果您需要将人Model与数据级别的分数Collection相关联,则Backbone的一个很好的扩展可以解决这个问题:http://backbonerelational.org/