问题是我们在mongo数据库中使用嵌入式记录,并尝试在前端的ember.js数据存储区中加载这些相同的记录。这在我们直接加载文档时工作正常,但在我们加载它时却没有。
在余烬方面,我们有相应的模型和以下内容来支持嵌入式记录
App.RateSerializer = App.ApplicationSerializer.extend( DS.EmbeddedRecordsMixin, {
attrs: {
tiers: { embedded: 'always' }
},
});
现在每次我们直接加载速率对象时,嵌入的层都会正确序列化,这很棒!除了,为了加快应用程序,我们想要加载费率。
现在我们的问题是,当我们侧载对象时,所有嵌入对象都没有正确序列化,因为ember没有调用extractArray
覆盖RateSerializer
覆盖的ApplicationSerializer
函数。
在加载时设置每类型序列化程序的正确方法是什么?
答案 0 :(得分:0)
我通过从序列化程序的extract
方法手动调用sideloaded类型的序列化程序来实现它。
例如,我有一个负载帐户的用户。在用户序列化程序中,我创建了一个帐户序列化程序并调用其normalizePayload
:
extract: function(store, type, payload, id, requestType) {
if (payload.accounts) { // has sideloaded account data
payload = AccountSerializer.create().normalizePayload(payload);
}
return this._super(store, type, payload, id, requestType);
},