创建图表后,我不想添加和删除事件。问题是我无法通过处理事件获得图表的属性。像:
event.xAxis[0].min
我创建了一个例子:
https://stackblitz.com/edit/angular-sw9fbo?file=src%2Fapp%2Fapp.component.ts 第55行:
private addEvents(): void {
Highcharts.addEvent(this.chartTarget.nativeElement, 'selection', (event) => {
// problem can't get xAxis or any properties of the chart
console.log('selection->x-min: ', event.xAxis[0].min);
});
}
修改
更新了Stackblitz
答案 0 :(得分:1)
您的代码有两个小缺陷,会破坏行为:
首先,您需要实际调用addEvents
方法。而不是第43行中的this.addEvents;
,您需要致电this.addEvents();
其次,Highcharts.addEvent()
- 方法希望您传递实际的图表对象 - 而不是对其容器的引用。所以将第50行改为
Highcharts.addEvent(this.chart, 'selection', (event) => {
传递上面创建的图表。
要删除TypeScript编译错误并获得完全自动完成功能,您需要从npm手动安装相应的类型包。
npm install --save @types/highcharts
相应地在文件顶部导入特定的事件类型。
import {ChartSelectionEvent} from 'highcharts';
最后将Type相应地添加到函数签名中。
Highcharts.addEvent(this.chart, 'selection', (event: ChartSelectionEvent ) => {