2015-04-05 49 views
1

这是我在Stackoverflow的第一个问题。 :) 我的问题是下一:ember-cli与EmbeddedRecordsMixin没有嵌入模型

我想一个JSON发送到我的API(通过POST)这种格式:

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

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

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

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

GET响应没有任何问题。

我有这些模型灰烬-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

我终于解决了这个问题,它的工作原理与此:

型号/ 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; 

Serializer/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' 
     } 
    } 
});