Ember Serializer没有序列化嵌入的记录

时间:2016-10-07 10:29:15

标签: serialization ember.js

我正在尝试从服务器序列化我的有效负载,但它无法正常工作。

以下是我的有效负载示例:

events:[{
  id: "57f358856c616cf434fd0500"
  annotations:[{_id: "57f358856c616cf434ff0500", desc: "hello world"}]
}]

我想将注释_id更改为id。

这是我的序列化器:

//event.js
export default ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs:{
    annotations:{embedded:'always'}
  }
});

//annotation.js
export default ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin,{      
  attrs:{
    id: '_id',
  },
});

即使我使用DS.EmbeddedRecordsMixin,它仍然无效。有人可以帮我吗?谢谢。

1 个答案:

答案 0 :(得分:0)

我假设你使用的任何版本的ember和ember-data都将使用 Ember Data 2.0 Serializer (这意味着使用JSONAPISerializer)。

因此,假设您没有使用pods,我认为您需要annotations.js中的文件,而不是app/serializers/annotation.js中的文件。

// path: app/serializers/annotation.js
import DS from 'ember-data';

export default DS.JSONAPISerializer.extend({
  primaryKey: '_id'
});

我在Ember Twiddle中创建的工作代码示例 EmbeddedRecords with _id

Ember API参考:http://emberjs.com/api/data/classes/DS.JSONAPISerializer.html#property_primaryKey