我正在使用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”实例上的“practice”属性没问题。
现在,当我创建一个艺术家时,服务器返回以下有效负载:
{
"artist": {
"id": 38,
"first_name": "New",
"last_name": "Artist",
"practices": [
4
]
}
}
使用新ID更新模型。但是,当我去访问“实践”时,我得到原始数组值,而不是我期望的相关模型实例。
因此,在创建了一个包含关系的记录之后,我是否必须手动将相关对象添加回实例?或者我可以触发模型重新同步它的关系吗?
提前感谢任何见解!
更新
由于在保存操作完成后模型未反序列化,似乎关系丢失了。模型可以推回到商店,这将导致数据反序列化。
因此,根据上面的代码,如果我有一个App.Artist实例为artist
,那么
artist.get('store').push('artist', artist.get('data'));
将导致关系可用。但是,我还不确定这是否“正确”。