使用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