2015-04-05 44 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' 
     } 
    } 
});