使用RESTAdapter
时,我有一个要嵌入到响应中的Organization
模型。看来,Ember.RESTAddapter
的默认实现发送id
,使用相同的型号名称,但不是作为一个对象(这个目前“作品”):Ember Data:允许嵌入ID进行记录
POST/PUT API/V1 /项目/ {ID}
{
"item" {
id: "1029383829"
...
organization: "26044097612186763401268824297"
}
}
我已征询文件,并发现混入DS.EmbeddedRecordsMixin
要做到这一点,再加上attrs
宣布embedded: "always"
或Serializer
:
型号/ item.js
var Item = DS.Model.extend({
...,
organization: DS.belongsTo("organization", {embedded: "always"})
});
串行器/ item.js:
var ItemSerializer = DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
organisation: {serialize: "id", embedded: "always"}
}
}
);
但是,反序列化记录时,灰烬数据抱怨,说,它预计的对象,只是得到了一个字符串:
声明失败:期望一个对象为
data
在cal升推动 应用@模型:组织:,但26044097612186763401268824297
最终,我宁愿的系统中,比作侧面加载,其中附加的属性,后固定“_id”,描述相应的嵌入式记录id
:
{
"item": {
id: 1,
name: "name",
organization_id: "26044097612186763401268824297"
...
}
}
我怎么才能让序列化和反序列化嵌入式id
侧载我Organization
模式?
您不需要在'attrs.organisation'上指定'setialize:'id'',因为它是序列化程序的默认值。 – 2014-12-05 20:35:11