我正在使用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箭头函数的信息,以了解如何确保实际指向您的实例。

09-10 04:08