正在chart.js中更新



我正在想办法更新chart.js图表。谷歌给出了很多答案,我认为有些已经过时了,因为我似乎找不到任何解决方案。文档页面上说只使用chartname.update(),但它似乎对我不起作用。我已经检查了控制台,以确保图表对象正在更新。出于某种原因,页面上的图表本身并没有改变。

let chartContainer = document.getElementById('charts');
let overview = {
create: function () {
let chartCanvas = document.createElement('canvas');
chartCanvas.id = 'overviewChart';
chartCanvas.appendChild(document.createTextNode('test'));
chartContainer.appendChild(chartCanvas);
let overviewChart = document.getElementById('overviewChart').getContext('2d');
renderChart = new Chart(overviewChart, {
type: 'bar',
data: {
labels:subjectList,
datasets: [{
barThickness: 'flex',
label: 'Completed Credits',
data: []
}]
},
options: {
}
})
},
reload: function() {
console.log('reloaded overview chart');
renderChart.data.datasets.data = [];
for (subject in classes) {
console.log('adding: ' + classes[subject].count)
renderChart.data.datasets.data.push(classes[subject].count);
}
renderChart.update();
}
}
function reloadCharts() {
overview.reload();
}
overview.create();

访问renderChart.data.datasetsreload函数存在问题。请注意,renderChart.data.datasets是一个数组。因此,您需要进行以下更改:

reload: function() {
// renderChart.data.datasets.data = []; // old
renderChart.data.datasets[0].data = []; // new
for (subject in classes) {
console.log('adding: ' + classes[subject].count)
// renderChart.data.datasets.data.push(classes[subject].count); // old
renderChart.data.datasets[0].data.push(classes[subject].count); // new
}
renderChart.update();
}

相关内容

  • 没有找到相关文章

最新更新