我创建了带有如下图表的BarChart:
<canvas id="bar"
chart-data="ctrl.barChartData"
chart-options="ctrl.barChartOptions"
chart-labels="ctrl.barChartLabels"
chart-series="ctrl.barChartSeries"
chart-click="ctrl.chartClick"
class="chart chart-bar">
</canvas>
我已经chartClick
基于一些示例编写了一个函数,看起来像这样:
vm.chartClick = function(evt){
var myBarChart = //how I can obtain a access to my created bar chart?
var activePoints = myBarChart.getPointsAtEvent(evt);
console.log("active: "+activePoints);
}
我的问题是:如何获得对我创建的图表的访问权并将其分配给myBarChart
?
我已经找到Highcharts的解决方案,但是找不到Chart.js
更新:
基于@IBarros提供的链接,我设法编写了以下几行代码:
$scope.$on('chart-create', function (event, chart) {
//console.log(chart);
myBarChart = chart;
});
我有2张图表-一张饼图,一张条形图。此外,每个图表可以多次发出该事件,因此我在控制台中打印了7张图表。我的下一个问题是:如何找出我要查找的条形图?
在此问题中解释了事件被触发7次的原因:如何获取图表实例?#464
如果在设置数据后设置了选项或其他可选属性,则图表将被销毁并重新创建。这种逻辑使图表的设置每次发生变化时都可以自动更新。
发生这种情况时,您只需更新自己的参考即可。
要找出所需的图表对象,只需在图表对象中查找图表指令ID(或图表类型)。
使用对象作为关联数组
$scope.myCharts = {};
将对象引用保存在关联数组中
$scope.$on('chart-create', function (event, chart) {
console.log(chart.chart.canvas.id);
console.log(chart.chart.config.type);
//If id is the same, reference will be updated
$scope.myCharts[chart.chart.canvas.id] = chart;
});
通过其指令ID访问图表对象
console.log($scope.myCharts[id]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句