我正在根据某些情况从API提取系列数据,如果在一种情况下数据为空,则无法刷新图表Chart,但它仍显示先前的值,而没有获得正确的方法来刷新图表
ngAfterViewInit() {
this.sink.add(this._store.pipe(select(coreSelector)).
subscribe((data: ICore) => {
if (data && data.hasOwnProperty(this.selectedZone)) {
this.chartComponent.chartInstance.xAxis[0].
setCategories(data[this.selectedZone].categories, false);
this.updateSeries(data);
} else {
// this.chartComponent.chartInstance.xAxis[0].setCategories([], false);
// this.chartComponent.chartInstance.series.forEach((chartSeries, index) => {
// this.chartComponent.chartInstance.series[index].setData([], false);
// });
}
}));
}
updateSeries(data) {
data[this.selectedZone].seriesData.forEach((series) => {
this.chartComponent.chartInstance.series.forEach((chartSeries, index) => {
if (seriesKeyMapping[series.seriesName] === chartSeries.name) {
this.chartComponent.chartInstance.series[index].setData(series.data, false);
}
});
});
this.chartComponent.chartInstance.redraw();
}
我尝试将setData设置为空数组,但这也无法按预期工作。 最好的方法是什么?
答案 0 :(得分:0)
如果您将Highcharts与Angular一起使用,建议使用官方的highcharts-angular包装器。使用包装程序,您不必创建自己的方法即可处理更新。
在这里您可以找到一个简单的演示,它将向您展示使用highcharts-angular更新图表的最佳方法:
https://stackblitz.com/edit/highcharts-angular-optimal-way-to-update-gd7vv2