我将数据解析到我的图表时遇到问题。当然,这应该包含在我使用getJSON的自动进程中,并且不想使用ajax,所以我有:
$.getJSON('file.json').done( function (results) {
var labels = [];
var data = [];
var labels = results.map(function (item) {
return item.updatedLaels
});
var data = results.map(function (item) {
return item.updatedData;
});
console.log(labels)
console.log(data)
});
所以当然标签和数据以适当的方式记录到控制台,例如:
(5) [1,2,3,4,5]
但是如何在这部分中使用它:
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'Example',
data: data,
borderColor: 'rgba(75, 192, 192, 1)',
backgroundColor: 'rgba(75, 192, 192, 0.2)',
}]
},
});
因为index.html生成没有数据的空图表。如何以正确的方式映射标签和数据?
labels
和data
变量是你的undefined
的$.getJSON
done
函数之外的callback
。
您可以在done
中调用函数,即createChart(labels, data)
,或者在done
中为您带来图表代码
$.getJSON('file.json').done( function (results) {
var labels = [];
var data = [];
var labels = results.map(function (item) {
return item.updatedLabels
});
var data = results.map(function (item) {
return item.updatedData;
});
// Create chart
createChart(labels, data);
});
function createChart(labels, data) {
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'Example',
data: data,
borderColor: 'rgba(75, 192, 192, 1)',
backgroundColor: 'rgba(75, 192, 192, 0.2)',
}]
},
});
}