Ember数据:映射数组

时间:2015-10-16 14:19:09

标签: ember.js ember-data

我正在尝试根据我从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
        }
    ],
  }
}

1 个答案:

答案 0 :(得分:0)

您有几种不同的选择:

  1. 使用num_activity_per_date声明DS.attr()作为原始属性。
  2. 通过撰写custom transform
  3. num_activity_per_date视为自定义属性类型
  4. num_activity_per_date视为embedded relationship
  5. 好像你可能想和#3一起去。您将要覆盖父模型的序列化程序,如下所示:

    import DS from 'ember-data';
    
    export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
        attrs: {
            activityPerDate: { embedded: 'always' }
        }
    });
    

    然后声明activityPerDate: DS.hasMany('activityPerDate')处理。 (我说应该是因为我从来没有得到嵌入式记录才能正常工作。但是,自从我尝试过以来,这也是很长时间.YMMV。)