ember-cli与EmbeddedRecordsMixin没有嵌入模型

时间:2015-04-05 14:21:36

标签: javascript ember.js ember-cli serializer

这是我在Stackoverflow中的第一个问题。 :) 我的问题是下一个:

我正在尝试使用以下格式向我的API(通过POST)发送JSON:

Events: [
{
  id: 2,
  name: "foo",
  Eventcategories: [1,2]
}]

嵌入hasMany Eventcategories与EmbeddedRecordsMixin的关联,这不会出现在JSON序列化中,只有这样:

Events: [
{
  id: 2,
  name: "foo"
}]

我尝试使用ActiveModelSerializer和RESTSerializer而没有结果。

GET响应没有任何问题。

我有一个包含这些模型的ember-cli项目:

-------- event.js ----------------

var event = DS.Model.extend({
  name: DS.attr('string'),
  Eventcategories: DS.hasMany('eventcategory')
});
export default event;

--------- eventcategoy.js ------------------

var eventcategory = DS.Model.extend({
   tipo: DS.attr('string'),
   Events: DS.hasMany('event')
});
export default eventcategory;

这是我的序列化器:

------- event.js ----------------------------

import DS from 'ember-data';

export default DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin,{
  attrs: {
    Eventcategories: { embedded: 'always' }
  }
});

------ eventcategory.js --------------------

import DS from 'ember-data';

export default DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin,{
  attrs: {
    Events: { embedded: 'always' }
  }
});

你能帮帮我吗?

问候。

天使

1 个答案:

答案 0 :(得分:1)

最后我解决了这个问题,它适用于此:

型号/ foo.js:

var foo = DS.Model.extend({
...,
...,
...,
bars: DS.hasMany('bar', {async: true})
});
export default foo;

型号/ bar.js:

var bar = DS.Model.extend({
...,
Foos: DS.hasMany('foo', {async: true})
});

export default bar;

串行器/ foo.js:

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

串行器/ bar.js:

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