这是我在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' }
}
});
你能帮帮我吗?
问候。
天使
答案 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'
}
}
});