【发布时间】:2018-05-10 10:27:07
【问题描述】:
我正在使用 angular-highcharts (https://www.npmjs.com/package/angular-highcharts),我能够检测到事件,但似乎无法加载函数。
事件捕获是为了点击任何系列的点...
events: {
click: function(event) {
alert("Highcharts event click detected... Next action will be to load 'myFunction'.. check the console for error");
this.myFunction();
}
}
它应该加载“myFunction()”,这是一个简单的警报。
myFunction() {
alert("myFunction executed");
}
相反,控制台日志中的错误是:
> ERROR TypeError: this.myFunction is not a function
这在“vanilla”Javascript 中可以正常工作,但在 angular-highcharts 中不行。
角度(不工作):
https://stackblitz.com/edit/angular-8v1obg
香草(工作):
http://jsfiddle.net/marty232/kkgygaya/3/
如何获取角度版本来加载函数?
更新
问:为什么我希望能够加载函数?
答: 当用户点击一个数据点时,我需要触发各种外部服务、更改变量、更新 HTML 等。所以,即使我的示例是访问单个函数,我也需要基本上能够访问“this”范围内的“任何”函数或对象(理想情况下,也可以访问其他范围)。希望这是有道理的。
【问题讨论】:
-
什么时候出现这个错误
-
问题可能是在执行您的点击处理程序时,对“this”的引用发生了变化。在您的香草示例中,您引用了调用范围内的函数,但您的“this”范围在角度示例中发生了变化,因此它找不到该函数。不过,我不确定如何正确解决此问题。
标签: angular highcharts