在 Computed 属性 returns 中调用 Ember 模型不正确的数组
Calling Ember Model in Computed Property returns incorrect array
我正在尝试格式化保存在 Ember 模型中的数据,以便我可以将其插入图表组件。
路线代码:
import Route from '@ember/routing/route';
export default Route.extend({
model() {
let dateFrom = this.paramsFor('dashboard').dateFrom
let dateTo = this.paramsFor('dashboard').dateTo
let hash = {dateFrom, dateTo}
return Ember.RSVP.hash({
custakelist: this.get('store').query('custakelist', hash),
barchart: this.get('store').query('barchart', hash),
});
},
setupController(controller, models) {
this._super(controller, models);
controller.set('barchart', models.barchart);
controller.set('custakelist', models.custakelist);
},
控制器代码:
import Controller from '@ember/controller';
import groupBy from 'ember-group-by';
export default Controller.extend({
entriesByDate: groupBy('custakelist', 'take_list_date'),
entriesByAge: groupBy('custakelist', 'patient_age'),
wardData: Ember.computed.map('entriesByDate', function(group) {
return {
label: group.value,
count: group.items.length
};
}),
ageData: Ember.computed.map('entriesByAge', function(group) {
return {
label: group.value,
count: group.items.length
};
}),
clerkData: Ember.computed.map('barchart', function(barchart) {
return {
label: barchart.label,
count: barchart.count
};
}),
});
由于 Ember 数据,我知道模型已正确加载到页面上。我也知道 'custakelist' 模型正在被其他图表使用。
当我尝试使用模型 'barchart' 并将结果记录到控制台时,我可以看到创建了一个包含正确项目数的数组,但它们不包含任何值,它们只是显示如下:
0: {label: Computed 属性, count: Computed 属性}
如何使已根据我的模型加载的数据在此上下文中可用?
我解决了这个问题,方法是使用 forEach 迭代模型并将结果放入一个新数组中,准备插入我的图表中:
clerkData: Ember.computed('barchart', function(test) {
let newArray = []
this.get('barchart').forEach(function(x) {
let newLabel = moment(x.data.label).format("MMM Do YY")
let newCount = x.data.count
let newData = {label:newLabel, count:newCount}
newArray.push(newData)
})
return newArray
}),
我正在尝试格式化保存在 Ember 模型中的数据,以便我可以将其插入图表组件。
路线代码:
import Route from '@ember/routing/route';
export default Route.extend({
model() {
let dateFrom = this.paramsFor('dashboard').dateFrom
let dateTo = this.paramsFor('dashboard').dateTo
let hash = {dateFrom, dateTo}
return Ember.RSVP.hash({
custakelist: this.get('store').query('custakelist', hash),
barchart: this.get('store').query('barchart', hash),
});
},
setupController(controller, models) {
this._super(controller, models);
controller.set('barchart', models.barchart);
controller.set('custakelist', models.custakelist);
},
控制器代码:
import Controller from '@ember/controller';
import groupBy from 'ember-group-by';
export default Controller.extend({
entriesByDate: groupBy('custakelist', 'take_list_date'),
entriesByAge: groupBy('custakelist', 'patient_age'),
wardData: Ember.computed.map('entriesByDate', function(group) {
return {
label: group.value,
count: group.items.length
};
}),
ageData: Ember.computed.map('entriesByAge', function(group) {
return {
label: group.value,
count: group.items.length
};
}),
clerkData: Ember.computed.map('barchart', function(barchart) {
return {
label: barchart.label,
count: barchart.count
};
}),
});
由于 Ember 数据,我知道模型已正确加载到页面上。我也知道 'custakelist' 模型正在被其他图表使用。
当我尝试使用模型 'barchart' 并将结果记录到控制台时,我可以看到创建了一个包含正确项目数的数组,但它们不包含任何值,它们只是显示如下:
0: {label: Computed 属性, count: Computed 属性}
如何使已根据我的模型加载的数据在此上下文中可用?
我解决了这个问题,方法是使用 forEach 迭代模型并将结果放入一个新数组中,准备插入我的图表中:
clerkData: Ember.computed('barchart', function(test) {
let newArray = []
this.get('barchart').forEach(function(x) {
let newLabel = moment(x.data.label).format("MMM Do YY")
let newCount = x.data.count
let newData = {label:newLabel, count:newCount}
newArray.push(newData)
})
return newArray
}),