从 return 中未定义的 ember 中获取数据
get data from store return undefined in ember
我在从存储中获取数据时遇到一些问题。
Isset 模型订单:
import DS from 'ember-data';
export default DS.Model.extend({
test: DS.hasMany('dealer-status'),
});
适配器(它是测试数据)。我没有规范化响应,我将参数添加到 data
以进行规范化。它的实现将在 serialize
:
export default DS.JSONAPIAdapter.extend({
service: Ember.inject.service('admin.auth'),
query(store, type, query) {
var service = this.get('service');
return new Ember.RSVP.Promise(function (resolve, reject) {
service.fetch(query).subscribe(
res => {
var data = {
"data": [{
"type": "user",
"id": "1",
"attributes": {
test: 'test'
}
}]
};
resolve(data);
},
err => {
reject(err);
});
});
}
});
路由器:
model() {
return this.get('store').query('orders', {}).then(res => {
console.log(res.get('test')); //undefined
console.log(res.objectsAt(0)); //undefined
})
在路由器中我通过 query
找到,但我无法获取参数 test
。在 Promise res.get('test') return 未定义。
为什么我在 promise 中得到 undefined?如何解决?
因为在您的 order
模型中您没有属性 test
。这是 hasMany
关系。查看 json API documentation about relationships in resource objects 了解更多详情。
我在从存储中获取数据时遇到一些问题。
Isset 模型订单:
import DS from 'ember-data';
export default DS.Model.extend({
test: DS.hasMany('dealer-status'),
});
适配器(它是测试数据)。我没有规范化响应,我将参数添加到 data
以进行规范化。它的实现将在 serialize
:
export default DS.JSONAPIAdapter.extend({
service: Ember.inject.service('admin.auth'),
query(store, type, query) {
var service = this.get('service');
return new Ember.RSVP.Promise(function (resolve, reject) {
service.fetch(query).subscribe(
res => {
var data = {
"data": [{
"type": "user",
"id": "1",
"attributes": {
test: 'test'
}
}]
};
resolve(data);
},
err => {
reject(err);
});
});
}
});
路由器:
model() {
return this.get('store').query('orders', {}).then(res => {
console.log(res.get('test')); //undefined
console.log(res.objectsAt(0)); //undefined
})
在路由器中我通过 query
找到,但我无法获取参数 test
。在 Promise res.get('test') return 未定义。
为什么我在 promise 中得到 undefined?如何解决?
因为在您的 order
模型中您没有属性 test
。这是 hasMany
关系。查看 json API documentation about relationships in resource objects 了解更多详情。