我对Ember CLI相对较新,刚刚开始使用ember-data从我的Laravel Eloquent支持的RESTful API中检索JSON数据。
我想使用“Accounts”API返回的数据填充DataTables表。每个“帐户”还具有嵌入的“联系”记录,该记录位于从服务器返回的JSON中的“联系人”键下。 JSON是正确的,并且从API返回的“帐户”记录的示例是:
{
"accounts": {
"id": 1,
"account_name": "My Account",
"contact": {
"id": 54,
"first_name": "John",
"last_name": "Smith"
}
}
}
在我的控制器中,我在RecordArray中的每个“Account”DS.Model上调用了serialize()方法,将其转换为JSON对象,因为这样可以允许关系序列化。但是,即使我使用带有EmbeddedRecordsMixin的ActiveModelSerializer,生成的JSON中的关系也会如下所示:
"contact": {
"id": "54"
}
因此,只有“id”字段出现在序列化的嵌入式“Contact”对象中。
我的“account.js”序列化程序如下所示:
import DS from "ember-data";
export default DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
contact: {embedded: 'always'},
},
});
和我的“account.js”模型如下所示:
import DS from 'ember-data';
export default DS.Model.extend({
contact: DS.belongsTo('contact', {embedded: 'always'}),
});
我无法理解我做错了什么,我会感激任何人都可以提供帮助。
感谢。