Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js Ember中的侧加载嵌入记录未触发正确的序列化程序_Ember.js_Ember Data - Fatal编程技术网

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' }

问题是,我们正在mongo数据库中使用嵌入式记录,并试图将这些记录加载到前端的ember.js数据存储中。当我们直接加载文档时,这可以很好地工作,但当我们侧向加载文档时则不行

在ember方面,我们有相应的模型和以下支持嵌入式记录的模型

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);
},