我使用Chart.js的包装,它允许动画回调来确定图表完成绘制的时间。从Chart.js选项回调调用TypeScript函数
所以,我的图表选项是这样的:
public chartOptions: any = {
animation: {
duration: 2000,
onComplete: function() {
//alert('anim complete');
this.chartTestMethod();
}
},
responsive: true
};
和我chartTestMethod()
看起来是这样的:
chartTestMethod() {
console.log('chartTestMethod called.');
}
我的希望是有方法chartTestMethod()
(这是在同一打字稿文件)在图表动画完成时调用。然而,在动画完成,执行该方法调用线的时候,我得到的错误:
TypeError: this.chartTestMethod is not a function.
基本上,我怎么能正确调用该方法?
首先,它没有解决OP的问题,因为它和定义函数一样是一个对象的关键。其次,箭头功能在所有ECMAScript版本中都不可用。 – 2016-07-14 18:54:35
这个问题被标记为“typescript”,除非OP选择一个支持箭头函数的目标,它将使用闭包来模拟。无论如何,使用箭头函数“this”将指向包含chartOptions的任何实例。 – sgrtho
感谢您的投入。 sgrtho的回答对我来说非常合适。 – Roka545