首先,我将使用烬-CLI的发展,我在嵌入式格式服务器获取JSON:嵌入式记录在最新的余烬数据#1.0.0
单个对象
{
"id" : 1,
"name" : "Tom",
"surname" : "Smith",
"address" : {
"id" : 2,
"street" : "23",
"city" : "...",
...
}
}
阵列
[
{
"id" : 1,
"name" : "Tom",
"surname" : "Smith",
"address" : {
"id" : 2,
"street" : "23",
"city" : "...",
...
}
},
{
"id" : 2,
"name" : "Tom",
"surname" : "Smith",
"address" : {
"id" : 4,
"street" : "23",
"city" : "...",
...
}
},
...
]
我已经计算出如何使用RestAdapter中的以下内容将前缀追加到每个有效负载上。
export default DS.RESTSerializer.extend({
extract : function(store, type, payload, id, requestType) {
var typeKey = type.typeKey,
typeKeyPlural = typeKey.pluralize();
//Add name of model to payload as expected by ember data
var modelName = Array.isArray(payload) ? typeKeyPlural : typeKey;
var normalizedPayload = {};
normalizedPayload[modelName] = payload;
return this._super(store, type, normalizedPayload, id, requestType);
},
)}
我已经遍布各地搜索,可以看到所有这些不同的方式嵌入记录在余烬。
官方文档告诉我们DS.EmbeddedRecordsMixin类。但是这意味着我需要为每个模型创建一个DS.ActiveModelSerializer,我宁愿在模型本身中定义属性{embedded:“always”}。 http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html
这实际上有点工作,但显然是旧的,因为参数已经改变。在我看来,这有点破绽。 http://mozmonkey.com/2013/12/serializing-embedded-relationships-ember-data-beta/
有这个项目,但没有文档或如何让它工作的例子。 https://github.com/pixelhandler/ember-data-extensions
总而言之,我很困惑。