【问题标题】:Saving embedded child models when saving the parent model保存父模型时保存嵌入的子模型
【发布时间】:2015-05-05 12:08:57
【问题描述】:

我们有一个带有许多子模型的模型:

// 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,子模型会被标记为已保存吗?还是我们需要在父模型适配器中对每个子模型调用 save?

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

【问题讨论】:

  • 对不起,你试过什么?在我看来,所有这些问题都可以回答,但尝试一下并观察发送的请求
  • 发送的请求由适配器确定(我们使用自定义适配器,因为它是一个高度非标准的 3rd-party 后端),因此不会告诉我们任何信息。至于“试一试”,是的,那将是理想的事情,但我现在一直在吃其他优先级更高的东西,希望已经知道这一点的人能够启发我与此同时!

标签: ember.js ember-data


【解决方案1】:

当我需要保存嵌套模型时,我重写了序列化器方法 serializeBelongsTo 和 serializeHasMany 以获取所有信息到 json,然后在服务器端对其进行解析。

【讨论】:

    猜你喜欢
    • 2018-05-31
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多