Ember.js 如何在highcharts中刷新数据和/或重新绘制图表?
我正在以以下方式在余烬组件中实现highchartEmber.js 如何在highcharts中刷新数据和/或重新绘制图表?,ember.js,Ember.js,我正在以以下方式在余烬组件中实现highchart /controllers/mycontroller.js export default Controller.extend({ chartData: [{ name: 'Impact', borderWidth: 2, borderColor: '#FFFFFF', data: [], keys: ['x', 'y', 'v','f', 'i', 'm', 'c',
/controllers/mycontroller.js
export default Controller.extend({
chartData:
[{
name: 'Impact',
borderWidth: 2,
borderColor: '#FFFFFF',
data: [],
keys: ['x', 'y', 'v','f', 'i', 'm', 'c', 'g', 'p'],
dataLabels: {
enabled: true,
color: '#000000',
style:{
fontSize: 14,
fontFamily: 'arial',
textOutline: false
},
formatter: function(){
return this.point.options.feature;
}
}
}],
chartOptions: computed(function() {
return {
chart: {
renderTo: 'container',
type: 'mymap',
events: {
load: requestData, -----> function that makes an api call and formats data
redraw: true
}
我已经启用了重画选项,但它没有重画,因为加载数据只在组件首次加载时发生(在URL上着陆),我想
因此,我的问题是,当通过函数调用获取数据时,如何每隔60秒自动加载/重画一次数据 当
图表数据
或图表选项
更改时,显示的图表应自动更新。要实现这一点,您有两个不错的选择:
- 加载数据,进行处理以生成结构正确的
和chartData
(如有必要),然后执行chartOptions
this.setProperties({chartData,chartOptions})代码>
- 制作
和图表数据
正确的计算属性。如果您只定义了图表选项
,而没有依赖键,那么ember将不会重新计算,因为没有什么可以触发重新计算。如果您的数据请求方法更改了控制器/组件(顺便说一句,概念不同!)属性名为computed(function()…
,例如,您的计算属性应该依赖于以下内容:rawData
chartData:computed('rawData',function(){…},
reload() {
fetchStuff(...).then(result => this.set('rawData', result));
later(this, () => this.reload(), 60*1000);
}
非常感谢您的回复@arne.b。是的,我的模板中有
{{high charts content=chartData chartOptions=chartOptions}}
。我现在将尝试您的解决方案,我觉得我比Ember文档更了解您的回复。但是,我不明白我必须在哪里使用this.setProperties({图表数据,图表选项})
尽管如此?在控制器中,我必须将它们设置为属性?此
引用图表实例,对吗?似乎我无法对其使用setProperties
方法。@KaushikKrishna此
引用您在其模板中调用的控制器或组件的.js
文件{{high charts…
。这也是我提到的可选选项computed属性需要定义的地方。