Ember数据嵌入对象存储为单独的对象

时间:2012-08-22 07:38:47

标签: mongodb ember.js ember-data

我想知道是否可以定义存储在另一个模型中的模型。

我有这种结构:

Model Contact
    String name
    Model Address (hasMany)
    Model Phone (hasMany)

在我的后端,地址和电话是MongoDB的“联系”文档中包含的嵌入式文档。

而且,只要它们是嵌入式文档,它们就没有id。 当我在Emberjs /数据层时,它们仍然加载了嵌入式选项(参见https://github.com/emberjs/data#one-to-one部分的末尾),但存储为单独的对象,这在更新或保存时会造成麻烦。

1 个答案:

答案 0 :(得分:3)

您正在使用RESTadapter ... 当你保存时,你想序列化嵌入的所有关系吗?

使用

将选项哈希中的记录传递保存或更新到toJSON方法时
{associations: true}

看一下ember-data的单元测试,例如: https://github.com/emberjs/data/blob/master/packages/ember-data/tests/unit/to_json_test.js

deepEqual(record.toJSON({ associations: true }),
        { id: 1, name: "Chad", phone_numbers: [{
            id: 7,
            number: '123'
          },
          {
            id: 8,
            number: '345'
          },
          {
            id: 9,
            number: '789'
          }
        ]},
        "association is updated after editing associations array");
});

希望这会有所帮助..