我在javascript中有一个简单的疑问。
我有服务器加载数组:
var dados = [{'ano':2016,'id':1,'mes':1,'valor':87},{'ano':2016,'id':2,'mes':2,'valor':17},{'ano':2016,'id':3,'mes':3,'valor':26}]
获得我需要的值后:
var valores = new Array();
for( var i=0; i < dados.length; i++) {
valores.push(dados[i].valor);
}
现在是疑问。如何将值加载到Chart.js?
var lineChartData = {
datasets : [{
//ommited others configs..
data : valores (I would like load de values of valores here)
}]}
答案 0 :(得分:1)
valores
var必须是一个对象而不是常规数组类型。所以它应该是这样的:
请看以下代码:
<html>
<body>
<canvas id='myChart'></canvas>
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js'></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.1.1/Chart.js"></script>
<script>
var dados = [
{'ano':2016,'id':1,'mes':1,'valor':87},
{'ano':2016,'id':2,'mes':2,'valor':17},
{'ano':2016,'id':3,'mes':3,'valor':26}
];
var valores = {
// labels like month (mes/mês - I noticed you're a portuguese speaker)
labels: [],
datasets: [
{label: null, data: []}
//more items here whether you want
]
};
for (var index in dados) {
currData = dados[index];
valores.labels.push('Mês ' + currData['mes']);
valores.datasets[0]['data'].push(currData['valor']);
}
var ctx = $("#myChart").get(0).getContext("2d");
var myLineChart = new Chart(ctx).Line(valores);
</script>
</body>
</html>
&#13;
答案 1 :(得分:0)
不,图表会将数组作为输入,其中包含对象。数据集不能是数组,它应该是一个对象的集合。
您的JSON数据应该像
var lineChartData = {
data : [{
'valor':87
},{
'valor':22
}]
}
现在看看你是否正确将上述JSON传递给图表。 希望这能解决你的问题。