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

时间:2016-07-28 14:57:18

标签: javascript angular chart.js

我在我的项目中使用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);

我收到一条错误消息,&#34; getElementsAtEvent不是函数&#34;。我知道它一直运行到那一点因为我经历了调试器。  我的理解是我应该可以使用该功能。为了能够从js库引用/调用函数,我还需要做些什么吗?

非常感谢

2 个答案:

答案 0 :(得分:0)

这可能是另一个问题,但是e来自哪里? myNewChart.getElementsAtEvent(e)调用在没有进入某种类似回调的情况下浮动,这很奇怪

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

你的新图表肯定是chart.js Chart对象而不是别的吗?我从来没有使用过ng2-charts,但它是否提供了自己的Chart对象,而这个对象缺少这种方法?

答案 1 :(得分:0)

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

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