Ember.js Ember中的侧加载嵌入记录未触发正确的序列化程序
问题是,我们正在mongo数据库中使用嵌入式记录,并试图将这些记录加载到前端的ember.js数据存储中。当我们直接加载文档时,这可以很好地工作,但当我们侧向加载文档时则不行 在ember方面,我们有相应的模型和以下支持嵌入式记录的模型Ember.js Ember中的侧加载嵌入记录未触发正确的序列化程序,ember.js,ember-data,Ember.js,Ember Data,问题是,我们正在mongo数据库中使用嵌入式记录,并试图将这些记录加载到前端的ember.js数据存储中。当我们直接加载文档时,这可以很好地工作,但当我们侧向加载文档时则不行 在ember方面,我们有相应的模型和以下支持嵌入式记录的模型 App.RateSerializer = App.ApplicationSerializer.extend( DS.EmbeddedRecordsMixin, { attrs: { tiers: { embedded: 'always' }
App.RateSerializer = App.ApplicationSerializer.extend( DS.EmbeddedRecordsMixin, {
attrs: {
tiers: { embedded: 'always' }
},
});
现在,每次我们直接加载rate对象时,嵌入式层都被正确序列化,这太棒了!除此之外,为了加快应用程序的速度,我们喜欢侧载速率
现在我们的问题是,当我们侧向加载对象时,所有嵌入对象都没有正确序列化,因为ember没有调用extractArray
函数,而RateSerializer
在ApplicationSerializer
中覆盖了该函数
侧加载时,设置每类型序列化程序的正确方法是什么?我通过从序列化程序的
extract
方法手动调用侧加载类型的序列化程序来实现
例如,我有一个用户侧载帐户。在用户序列化程序中,我创建了一个帐户序列化程序,并调用其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);
},