Javascript Ember数据返回内部模型数组,而不是实际数据
我正在创建一个新的适配器和模型,并尝试获取数据以在模板中使用它。当我在route中发出请求时,模型中的数据如下所示: 实际响应如下所示: 我真的不知道为什么ember store返回的数据具有错误的ID(前两个对象是响应中的对象,但ID字段不匹配)和一些内部方法 适配器的代码: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()
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);
}
});
虽然不理想,但它确实起到了关键作用内部模型是数据总是返回的。它将您的数据包装在几个层中,以便跟踪情况。从你的问题中我不确定的是什么不起作用。