2015-10-16 121 views
0

我想从API中获得以下响应来定义Ember数据模型。我在定义num_activity_per_map字段时遇到了问题,因为它是JSON对象的数组,但是它们没有ID。如果我使用DS.hasMany('activityPerDate',{async:true})抱怨它没有主键。Ember数据:映射阵列

{ 
"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

您有几种不同的选择:

  1. 款待num_activity_per_date通过使用DS.attr()宣布它的原始属性。
  2. 款待num_activity_per_date为自写一个custom transform属性类型。
  3. 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。)