Ember.js 转换为BelongsTo
我想知道是否有可能为belongsTo(扩展hasMany)创建一个转换,因为我的REST服务器返回如下定义的关系:Ember.js 转换为BelongsTo,ember.js,ember-data,Ember.js,Ember Data,我想知道是否有可能为belongsTo(扩展hasMany)创建一个转换,因为我的REST服务器返回如下定义的关系: import DS from 'ember-data'; export default DS.Model.extend({ lastname: DS.attr('string'), firstname: DS.attr('string'), company: DS.belongsTo('company'), }); [ { "firstna
import DS from 'ember-data';
export default DS.Model.extend({
lastname: DS.attr('string'),
firstname: DS.attr('string'),
company: DS.belongsTo('company'),
});
[
{
"firstname": "John",
"lastname": "Doe",
"company": "5"
}
]
这样:
[
{
"firstname": "John",
"lastname": "Doe",
"company": {
"uri": "<snip>/api/rest/company/5",
"id": "5",
"resource": "company"
}
}
]
对于Ember Data 1.13,假设您获取的是单个模型,那么您将覆盖应用程序序列化程序中的
normalizeFindRecordResponse
:
// serializers/application.js
normalizeFindRecordResponse: function(store, primaryModelClass, payload) {
var record = { id: payload.id, type: primaryModelClass.modelName };
record.relationships = {};
Object.keys(payload).forEach(function(key) {
if (payload[key].id) { // it's an object with an id -> relationship
record.relationships[key] = { data: { id: payload[key].id, type: key } };
} else { // it's an attribute
record.attributes[key] = payload[key];
}
})
return { data: record };
}
这就是Ember Data 2.0的发展方向:根据需要调整传入的服务器数据。您可能可以使用的不是真正嵌入的数据,而是对象中的Id。除了idOkay之外,我还必须手动更正所有关系(在本例中,我只有一个关系,但还有很多关系),问题是我的rest api对所有关系的响应方式都是相同的,我希望以一种通用的方式来处理它,对于BelongTo Relationship,使其成为应用程序序列化程序,并使用提供的参数使其成为泛型?aces,我将在本周晚些时候试用它,并将您的答案标记为正确(如果有效),但首先我需要查看新的序列化程序函数,因为当前的extractHooks已被弃用。@emberigniter,您是否有记录迁移到JSON-API的资源?也许是RFC?我找不到它,我真的很感兴趣。@xavier.cambar并没有真正记录这一移动,但我写了关于最新的余烬数据的序列化程序/适配器