我在我的项目中使用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.ts
与import '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库引用/调用函数,我还需要做些什么吗?
非常感谢
答案 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文件中编写了一些自定义函数来获取事件并提取数据(通过检测鼠标位置并查看点击了哪些项目,等)。
如果有人需要任何帮助或见解,请告诉我,我很乐意提供