我正在使用Chart.js的包装器,该包装器允许动画回调来确定何时绘制图表。
因此,我的图表选项如下所示:
public chartOptions: any = {
animation: {
duration: 2000,
onComplete: function () {
//alert('anim complete');
this.chartTestMethod();
}
},
responsive: true
};
我的
chartTestMethod()
看起来像这样:chartTestMethod() {
console.log('chartTestMethod called.');
}
我希望在图表动画完成后调用
chartTestMethod()
方法(在同一TypeScript文件中)。但是,当动画完成并且执行了该方法调用行时,出现错误:TypeError: this.chartTestMethod is not a function.
基本上,如何正确调用该方法?
最佳答案
我暗示您的 chartTestMethod 与 chartOptions 在同一类中,因为您是在此的上使用它的。您应该确保了解如何在JavaScript中处理此的(以及TypeScript是JavaScript的超集)。那里必须有一百万个引用。
在不了解 Chart.js 的情况下,我认为可以安全地假定,当 onComplete 被调用时,此上下文绝对不适合您的类实例。因此,您想要的是一个箭头函数,如下所示:
onComplete: () => { this.chartTestMethod(); }
阅读有关TypeScript箭头函数的信息,以了解如何确保实际指向您的实例。