在Computed Property中调用Ember Model返回不正确的数组

时间:2018-01-15 09:18:50

标签: ember.js ember-data

我正在尝试格式化Ember模型中的数据,以便将其插入图表组件。

路线代码:

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

});

控制器代码:

{{1}}

我知道由于Ember Data,模型正在正确加载到页面上。我也知道其他图表正在使用'custakelist'模型。

当我尝试使用模型'barchart'并将结果记录到控制台时,我可以看到创建了具有正确数量项的数组,但它们不包含任何值,它们只显示如下:< / p>

0:{label:Computed Property,count:Computed Property}

如何根据我的模型加载已在此上下文中使用的数据?

1 个答案:

答案 0 :(得分:0)

我通过使用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

}),