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
Javascript Ember数据返回内部模型数组,而不是实际数据_Javascript_Ember.js_Ember Data - Fatal编程技术网

Javascript Ember数据返回内部模型数组,而不是实际数据

Javascript Ember数据返回内部模型数组,而不是实际数据,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,我正在创建一个新的适配器和模型,并尝试获取数据以在模板中使用它。当我在route中发出请求时,模型中的数据如下所示: 实际响应如下所示: 我真的不知道为什么ember store返回的数据具有错误的ID(前两个对象是响应中的对象,但ID字段不匹配)和一些内部方法 适配器的代码: export default DS.RESTAdapter.extend(UrlTemplates, { session: Ember.inject.service('session'), findAll()

我正在创建一个新的适配器和模型,并尝试获取数据以在模板中使用它。当我在route中发出请求时,模型中的数据如下所示:

实际响应如下所示:

我真的不知道为什么ember store返回的数据具有错误的ID(前两个对象是响应中的对象,但ID字段不匹配)和一些内部方法

适配器的代码:

export default DS.RESTAdapter.extend(UrlTemplates, {
  session: Ember.inject.service('session'),
  findAll() {
    const token = this.get('session.data.authenticated.access_token');
    return this.ajax(`${window.App.host}/distributor/${1}/companies?access_token=${token}`);
  }
});
路由器的代码:

model() {
    return Ember.RSVP.hash({
      companies: this.store.findAll('distributor/distributors')
    });
  },
模型的代码:

export default DS.Model.extend({
  Name: DS.attr('string'),
  demo: DS.attr('number'),
  devices: DS.hasMany('distributor/devices', { async: true })
});

正如您所看到的,这是一个非常常见的过程。如果我将请求中的数据记录在路由中,那么它已经混淆了。考虑到余烬数据的数据流,我假设存储中的数据是混合的。有什么办法可以解决这个问题吗?

原来有一个解决办法。我创建了一个简单的序列化程序:

import DS from 'ember-data';

export default DS.JSONSerializer.extend({
  extractArray(firstArg, secondArg, payload) { 
    return this._super(firstArg, secondArg, payload);
  }
});

虽然不理想,但它确实起到了关键作用

内部模型是数据总是返回的。它将您的数据包装在几个层中,以便跟踪情况。从你的问题中我不确定的是什么不起作用。