保存父模型时保存嵌入的子模型

时间:2015-05-05 12:08:57

标签: ember.js ember-data

我们有一个包含多个子模型的模型:

// models/parent.js
export default DS.Model.extend({
    children: DS.hasMany("child")
});

// models/child.js
export default DS.Model.extend({
    parent: DS.belongsTo("parent")
});

使用EmbeddedRecordsMixin设置父模型的序列化程序,如下所示:

// serializers/parent.js
export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
    attrs: {
        children: { embedded: "always" }
    }
});

如果我们在父模型的实例上调用save,孩子会被标记为已保存吗?或者我们是否需要在父模型适配器中调用每个子模型的保存?

此外,如果我们定义子模型序列化程序,它是否会在父序列化过程中用于序列化子项?或者ED会使用默认的序列化程序吗?

1 个答案:

答案 0 :(得分:0)

当我需要保存嵌套模型时,我覆盖序列化方法serializeBelongsTo和serializeHasMany以获取所有信息到json,然后在服务器端解析它。