我正在尝试根据我从API获得的以下响应来定义Ember数据模型。我在定义num_activity_per_map字段时遇到问题,因为它是一个JSON对象数组,但它们没有id。如果我使用DS.hasMany(' activityPerDate',{async:true})抱怨它没有主键。
{
"stats": {
"num_users": 44,
"num_activity_per_date": [
{
"date": "04-10-2015",
"count": 6
},
{
"date": "05-10-2015",
"count": 8
},
{
"date": "06-10-2015",
"count": 7
},
{
"date": "07-10-2015",
"count": 5
},
{
"date": "08-10-2015",
"count": 3
}
],
}
}
答案 0 :(得分:0)
您有几种不同的选择:
num_activity_per_date
声明DS.attr()
作为原始属性。num_activity_per_date
视为自定义属性类型
num_activity_per_date
视为embedded relationship。好像你可能想和#3一起去。您将要覆盖父模型的序列化程序,如下所示:
import DS from 'ember-data';
export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
activityPerDate: { embedded: 'always' }
}
});
然后声明activityPerDate: DS.hasMany('activityPerDate')
并应处理。 (我说应该是因为我从来没有得到嵌入式记录才能正常工作。但是,自从我尝试过以来,这也是很长时间.YMMV。)