我正在调用我构建的API。响应返回一个大JSON,其中嵌入了所有数据。 例如:
"feed" : {
"id": 12345,
"name": "trogdor",
"items": [
{
"id":6789,
"content": I am an items content
},
{
"id":6789,
"content": I am an items content
},
{
"id":6789,
"content": I am an items content
},
{
"id":6789,
"content": I am an items content
}
]
}
正如您所见,Feed模型返回hasMany
项。
所以我的模型定义如下:
Feed模型:
export default DS.Model.extend({
name: attr('string'),
items: hasMany('item')
});
物品型号:
export default DS.Model.extend({
content: attr('string'),
items: belongsTo('feed')
});
但是当我从模型调用中返回承诺时,当我呼叫模型""项目"时,没有设置数据。相反,我只是得到一个没有属性或数据的商店类。
当我记录模型并尝试打开data
哈希时,我得到一个没有数据的余烬EmptyObject
。
答案 0 :(得分:0)
使用Ember CLI,为您的Feed模型生成新的序列化程序:
ember g serializer feed
然后,按如下方式定义序列化程序:
import DS from 'ember-data';
import ApplicationSerializer from './application';
export default ApplicationSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
items: { embedded: 'always'},
}
});
确保扩展主DS.RESTadapter
适配器文件中的application.js
,以便Ember正确序列化嵌入式嵌套JSON数据,否则Ember会希望服务器中的有效负载位于JSON API格式。