创建后为Chart.js附加onAnimationComplete

drnojrws  于 2022-11-07  发布在  Chart.js
关注(0)|答案(1)|浏览(138)

我正在创建一个Blazor component作为ChartJ的外观。我在Microsoft论坛上提出了一个问题,以了解如何为该组件调用JavaScript函数。
我的问题是如何在创建图表之前添加一些事件,因此,从Blazor页面,我传递了一个名为config的模型,它包含了图表的所有配置。
然后,我用JavaScript创建图表,如

var ctx = document.getElementById(id).getContext('2d');
var chart = new Chart(ctx, eval(config));

现在,我想添加一个事件,并向Blazor发送一个事件。例如,我为事件onHover添加了以下代码,它工作了。

chart.options.onHover = function () {
    DotNet.invokeMethodAsync('PSC.Blazor.Components.Chartjs', 'ChartHover');
}

onClick是工作太多。

chart.options.onClick = function (event, array) {
    var rtn = 0;

    if (array !== undefined && array.length > 0)
        rtn = array[0].index;

    DotNet.invokeMethodAsync('PSC.Blazor.Components.Chartjs', 'ChartClick', rtn);
};

现在,我想对onAnimationComplete执行同样的操作。

chart.onAnimationComplete = window["AnimationComplete1"];

在这种情况下,函数没有被调用。

chart.onAnimationComplete = function () {
    console.log('onAnimationComplete animation completed');
};

如何修复代码?

lsmd5eda

lsmd5eda1#

没有可以直接在图表上配置的onAnimationComplete事件。必须像配置onHover一样在选项中配置,并且名称必须不同:

chart.options.animation.onComplete = function () {}

相关问题