我正在使用 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'));
将导致关系可用。但是,我仍然不确定这是否“正确”。