【问题标题】:How to map model data to a chart-friendly array in ember.js如何将模型数据映射到 ember.js 中的图表友好数组
【发布时间】:2017-05-19 14:42:59
【问题描述】:

我的路线中有一个模型,其中包含我想使用图表插件绘制图表的数据(ember-google-charts 或 ember-charts 的细节与我的问题无关)

routes/server.js:

import Ember from 'ember';

export default Ember.Route.extend({
  model(params) {
    return Ember.RSVP.hash({
      stats: this.store.query('stat', {filter: {serverId: params.server_id}})
      server: this.store.findRecord('server', params.server_id),
    })
  },
  setupController(controller, models) {
    controller.setProperties(models);
  }
 }
});

我的问题是在哪里/如何将统计数据制作成适当的数组(使用 timechecked 和 player 属性),以便将数据传递到模板中的图表插件中。

我尝试过类似的方法:

stats: this.store.query('stat', {filter: {serverId: params.server_id}}).then(items => {
    //modify items here

})

但我很难弄清楚如何使用 forEach(存在于 ember Array 类中)来操作数据并构建一个新数组而不引发错误

【问题讨论】:

    标签: ember.js charts ember-data


    【解决方案1】:

    1.您可以使用forEach 来迭代并返回您创建的结果。参考 this answer 使用 ember 模型

    stats: this.store.query('stat', { filter: { serverId: params.server_id } }).then(items => {
            //modify items here
            let result =[];
            items.forEach(function(element) {
              let value1 = element.get('propertyName');
              result.pushObject(value1);          
            }, this);
            return result;
        })
    

    2。如果你只想要普通数组,那么你可以使用toArray method

    【讨论】:

    • 完美 - 我非常接近这一点,但我错过了 element.get('propertyName')。 100% 解决了我的困惑
    猜你喜欢
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 2010-12-17
    • 2012-02-25
    • 2017-12-24
    • 1970-01-01
    相关资源
    最近更新 更多