【问题标题】:Chart.js: load new data on clickChart.js:点击加载新数据
【发布时间】:2017-01-04 21:02:54
【问题描述】:

我有多个数据集,并希望在单击按钮时进行更改。这是我需要的示例:http://codepen.io/marcelo2605/pen/JEoGEO?editors=1010

如果我点击“设置 2”按钮,图表会加载正确的数据。

但是当我尝试加载“set 1”时,什么也没有发生。

当我使用console.log 检查时,我看到foo 两个按钮的变量值相同。

【问题讨论】:

  • 看起来只是 eval 行为不当,为什么不将所有数据放入一个对象中,分成 2 个而不是对变量运行 eval?

标签: javascript chart.js


【解决方案1】:

改变这个:

myChart.data.datasets[0] = foo['datasets'][0];
myChart.data.labels = foo['labels'];
myChart.update();

对此:

myChart.config.data  = foo;
myChart.update();

在 cmets 之后编辑:

link to latest state

【讨论】:

  • 我认为它有效,但没有动画。每次加载新数据时都可以运行动画吗?
  • 所以你应该使用 myChart.destroy();然后重新创建它。
  • 获得完整动画的快速方法是每次都替换完整的表格,而不是更新数据属性。 update() 可能用于流数据。
  • @alttag 你能举个例子说明我该怎么做吗?
  • myChart = new Chart( ... ) 包装在一个函数中。获取新数据时调用该函数。
猜你喜欢
  • 2014-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多