Angular 2-从JS文件(chart.JS)调用函数-找不到函数

Angular 2 - Invoking function from a JS file (chart.js) - function not found

本文关键字:JS 函数 调用 找不到 文件 Angular chart      更新时间:2023-09-26

我在项目中使用了chart.js库和ng2 charts angular 2指令,一切都很好,只是我在直接从chart..js库调用函数时遇到了问题。特别是,我正在尝试调用getElementsAtEvent函数,但我得到了"…不是函数"错误。我知道chart.js库正在加载,因为图表正在渲染,我知道函数在库中,因为我可以搜索并找到它

我现在拥有的是:

  • 带地图的systemjs.config.js'chartjs': '../../areas/dashboard/plugins/chart.js/dist/'和包:当然还有'chartjs': {main: 'Chart.bundle.min.js', defaultExtensions: 'js'}
  • app.component.tsimport 'chartjs'; declare let Chart;

然后我有:

var chartEl = <HTMLCanvasElement> document.getElementById("chart_2").childNodes[1];
var ctx = chartEl.getContext("2d");
var myNewChart = new Chart(ctx);
var activePoints = myNewChart.getElementsAtEvent(e);

我收到一条错误消息,"getElementsAtEvent不是一个函数"。我知道它一直运行到那个时候,因为我已经通过了调试器。据我所知,该函数应该对我可用。我还需要做些什么才能从js库引用/调用该函数吗?

非常感谢

这可能是另一个问题,但e来自哪里?myNewChart.getElementsAtEvent(e)调用在没有像这样的回调的情况下四处浮动,这很奇怪

myChart.onclick = function(e){
        var points = myChart.getElementsAtEvent(e)
}

你的新图表肯定是Chart.js图表对象而不是其他对象吗?我从未使用过ng2图表,但它是否提供了缺少此方法的自己的Chart对象?

对于任何感兴趣的人,我最终消化了chart.js代码,并在Angular 2文件中编写了一些自定义函数,以获取事件并提取数据(通过检测鼠标位置和查看点击了哪些项目等)。

如果有人需要任何帮助或见解,请告诉我,我很乐意提供