我有几个Chart.js图表,以后可能需要更新。
是否可以在需要更新图表时从canvas元素中提取myChart对象?还是我必须在全局范围内保存每个myChart对象?
for(var i=1; i<=5; i++) {
createChart(i);
}
function createChart(i) {
var $chart = $('<canvas id="chart-' + i + '" width="400" height="400"></canvas>').appendTo('body');
var myChart = new Chart($chart, {
data: {
datasets: [{
data: [Math.random(), Math.random(), Math.random(), Math.random()]
}]
}
});
}
现在有一些伪代码,我希望以后如何更新图表2:
var updateChart = $('#chart-2'); // This is where I'd need to get the chart data from the canvas element
updateChart.data.datasets[0].data = updateChart.data.datasets[0].data.push(Math.random());
updateChart.update();
我建议将发送到图表的所有数据存储在数组中。阵列更新后,您可以发送:
HTTP / AJAX / SOCKET.IO
指示客户,并更新图表。