0

我正在使用谷歌可视化从我通过 JSON 发送的数据中绘制图表。我用 JQUERY 读取数据,但是,当我想在 javascript 中使用它时,我得到了变量未定义的问题。这是我的代码:

google.load("jquery", "1.3.2");
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(function(){
    $.get("http://localhost:8081/petclinic/users/7/campaigns/2/queries/4/analyze", function(data){
        console.log(data);

        results.push(data[0][0]);
        results.push(data[0][1]);
        for (var i = 1; i < data.length; i++) {
                results.push(data[i][0]);
                results.push(parseInt(data[i][1]));
        }
        console.log(results);
    });
    var data = google.visualization.arrayToDataTable(results);

    var options = {
      title: 'Company Performance'
    };

    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
    chart.draw(data, options);
});
4

1 回答 1

1

您需要将您的谷歌地图代码放在 ajax 回调中,因为在 ajax 之后,您的行google.visualization.arrayToDataTable(data);内数据未定义,因为它是在 ajax 回调之前执行的。

google.setOnLoadCallback(function(){
    $.get("http://localhost:8081/petclinic/users/7/campaigns/2/queries/4/analyze", function(data){
        console.log(data);

        results.push(data[0][0]);
        results.push(data[0][1]);
        for (var i = 1; i < data.length; i++) {
                results.push(data[i][0]);
                results.push(parseInt(data[i][1]));
        }
        console.log(results);

        var data = google.visualization.arrayToDataTable(data); // data or result ?

        var options = {
          title: 'Company Performance'
        };

        var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
        chart.draw(data, options);
    });

});
于 2013-06-10T10:23:18.397 回答