0

我正在使用 Ember Data 1.0 beta。

我有一个这样定义的模型:

App.Artist = DS.Model.extend({
  first_name: DS.attr('string'),
  last_name: DS.attr('string'),
  practices: DS.hasMany('practice')
});

当我在 api/artists 获取模型时,我得到一个集合,每个艺术家的有效负载都包含一个带有 id 数组的“practices”属性:

{
    "artists": [
        {
            "id": 2,
            "first_name": "An",
            "last_name": "Artist",
            "practices": [
                1,
                2
            ]
        },
    ]
}

到目前为止,一切都很好。Ember 魔法发生了,我可以访问“App.Artist”实例上的“practices”属性没问题。

现在,当我创建艺术家时,服务器返回以下有效负载:

{
    "artist": {
        "id": 38,
        "first_name": "New",
        "last_name": "Artist",
        "practices": [
            4
        ]
    }
}

该模型使用其新 ID 进行更新。但是,当我访问“实践”时,我得到的是原始数组值,而不是我期望的相关模型实例。

那么,在创建具有关系的记录后,我是否必须手动将相关对象重新添加到实例中?或者我可以触发模型重新同步它的关系吗?

提前感谢您的任何见解!

更新:

似乎关系丢失了,因为在保存操作完成后模型没有反序列化。模型可以被推回存储,这将导致数据被反序列化。

因此,根据上面的代码,如果我有一个 App.Artist 的实例,artist那么

artist.get('store').push('artist', artist.get('data')); 

将导致关系可用。但是,我仍然不确定这是否“正确”。

4

1 回答 1

1

这确实是一个错误,正在修复中。执行提交后应自动维护关系。

https://github.com/emberjs/data/issues/1214

于 2013-09-04T19:30:39.170 回答