【发布时间】:2021-07-28 00:06:15
【问题描述】:
我在angularjs中有简单的chartjs,悬停时会显示(20%)。
HTML
JS
angular.module('chartDemo', ['chart.js']) .config(['ChartJsProvider', function (ChartJsProvider) { // 配置所有图表 ChartJsProvider.setOptions({ //动画:假, //响应:假 }); }]) .controller('MainController', MainController);
函数 MainController($scope, $timeout) { var vm = this;
vm.labels = ["Download Sales", "In-Store Sales", "Mail-Order Sales"];
vm.data = [30, 50, 20];
vm.options = {
legend: {
display: true,
position: 'bottom'
},
tooltips: {
callbacks: {
label: (ttItem,data) => (`${data.labels[ttItem.index]}: ${data.datasets[ttItem.datasetIndex].data[ttItem.index]}%`)
}
},
cutoutPercentage: 60,
tooltipEvents: [],
tooltipCaretSize: 0,
showTooltips: true,
onAnimationComplete: function() {
self.showTooltip(self.segments, true);
}
}
}
MainController.$inject = ['$scope', '$timeout'];
小提琴
https://jsfiddle.net/bheng/hegma4zn/2/
现在,它显示 % 正确,当数据类型匹配高达 100% 时,像这样[30, 50, 20]
如果数据看起来像这样[360, 507, 207, 900],那么代码将不再工作。
对我有什么建议吗?
百分比
var percent = total/data.datasets[item.datasetIndex].data[item.index];
我只是不知道如何获取总值。
【问题讨论】:
标签: javascript angularjs charts chart.js