【发布时间】:2017-08-02 13:39:23
【问题描述】:
我的 vue 应用程序中有一个创建图表的函数。这是图表函数:
startChart: function (canvas, type) {
// init chart.js
var ctx = document.getElementById("myChart");
var myDoughnut = new Chart(ctx, {
type: 'doughnut',
data: {
labels: this.getAnalyticList[this.getRowIndex].chartNames,
datasets: [{
data: this.getAnalyticList[this.getRowIndex].chartData,
backgroundColor: [
'rgba(255, 99, 132, 0.6)',
'rgba(54, 162, 235, 0.6)',
'rgba(255, 206, 86, 0.6)',
'rgba(75, 192, 192, 0.6)',
'rgba(153, 102, 255, 0.6)',
'red',
'yellow',
'blue',
'green',
'orange',
'teal',
'violet',
'pink',
'purple'
]
}]
},
options: {
responsive: true,
defaultFontColor: '#ffffff',
}
})
}
然后我使用这条线在 vue 挂载的钩子中启动它
this.startChart(this.$refs.canvas, 'Doughnut');
我想要做的是获取图表上方加载的表格的行索引,然后将其传递到加载图表的 getAnalyticList 值中,这样我就可以从同一个列表中获取不同的数组。我正在创建一个更新功能,我从这个js fiddle 得到了这个stack article。我一直在尝试将他创建的函数改编为 vue,但没有运气这里是函数:
changeData: function () {
var myChart = Chart.doughnut(this.$refs.canvas, {
data: data,
});
myChart.data.datasets.data = this.getAnalyticList[this.getRowIndex].chartData;
myChart.data.labels = this.getAnalyticList[this.getRowIndex].chartNames;
myChart.update();
}
任何建议将不胜感激。
【问题讨论】:
-
您可能对vue-chartjs 感兴趣。它经过了良好的测试和维护,因此您不必自己进行集成。
-
不幸的是,目前的项目不可能