chartJS有问题。我正在调用一个函数来创建一个新的图表。创建工作正常,但是我想销毁所有以前的图表,以便在调用函数时得到一个新的图表。
这是我目前的代码:
var chartID;
function addData(chartType,data) {
for (var i = 0; i < data.length; i++) {
dataLabels.push(data[i][0]);
dataPoints.push(data[i][1]);
//console.log(data[i][1]);
}
if(chartID){
console.log('destroy');
chartID.destroy();
}
var ctx = document.getElementById('chart01').getContext('2d');
chartID = new Chart(ctx, {
type: chartType,
data: {
labels: dataLabels,
datasets: [{
label: 'Labels',
data: dataPoints,
backgroundColor: '#333'
}]
},
options: {
maintainAspectRatio: false,
aspectRatio: 1
}
});
}
3条答案
按热度按时间4c8rllxm1#
即使是我之前也遇到了同样的问题。我只是简单地添加了一个条件来检查图表变量是否为空。
在函数的顶部包含它。当你全局声明
chartID
时,它会很好地工作。这样你就不需要再次声明图表了。hiz5n14c2#
试试看:
---------------------上面添加了代码示例----------------
我对ChartJs有一些问题。不知何故,它创建了一个新的图表,以前的图表仍然在画布上,当你悬停时会显示出来。
这对我很有效:
xfb7svmp3#
我正在创建多个图表点击。但在创建图表之前,我只是破坏任何以前的图表,所以,这就是它的外观