Javascript 将图表加载到第页

Javascript 将图表加载到第页,javascript,jquery,amcharts,Javascript,Jquery,Amcharts,我的代码如下所示: var check = parametrTable.length -1; var data = []; $.each(parametrTable, function(i, x) { // NOTE: x = parametrTable[i] $.getJSON("myurlwithparametr", function(json) { $.each(json, function(j, d) { data[j] = data[j]

我的代码如下所示:

var check = parametrTable.length -1;
var data = [];
$.each(parametrTable, function(i, x) { // NOTE: x = parametrTable[i]
    $.getJSON("myurlwithparametr", function(json) {
        $.each(json, function(j, d) {
            data[j] = data[j] || {};
            data[j]["count" + i] = d.count;
            if (i == 0) {
                data[j].category = d.column;
            }
        });
        if(i == check){
                       loadChart(data);
                   }
    });
});
这部分从我的amchart生成数据,然后如果'i'='check'结束。我将生成数据发送到带有参数'data'的函数'loadChart'。 我的功能代码:

    AmCharts.ready(function() {
    chart = new AmCharts.AmSerialChart();

    chart.dataProvider = data;
    chart.categoryField = "category";
    chart.startDuration = 1;
    chart.type = "serial";


    var categoryAxis = chart.categoryAxis;
        categoryAxis.labelRotation = 90; 
        categoryAxis.axisAlpha = 1;
        categoryAxis.insie = true;
        categoryAxis.gridPosition = "start";

    var valueAxis = new AmCharts.ValueAxis();
        valueAxis.title = "title";
        valueAxis.axisAlpha = 1;
        chart.addValueAxis(valueAxis);

    for (i=0;i<data.length;++i) {
        var graph = new AmCharts.AmGraph();
        graph.valueField = "count"+i+"";
        graph.balloonText = "[[value]]";
        graph.bullet = "round";
        graph.type = "smoothedLine";
        graph.lineAlpha = 1;
        graph.connect = true;
        graph.lineThickness = '2';
        //graph.fillAlphas = 1;
        chart.addGraph(graph);
    }

        chart.write('chartdiv');
    });

将生成图表,但不是所有值。有什么建议吗

看不到您的实际数据很难判断,但问题似乎在于如何包装图形。现在,您正在为数据中的每个数据点创建一个单独的图形。这似乎不对。您应该为ParameterTable中的每个项目创建:


问题在于amchart的加载时间早于数据。有时显示单个值,有时不显示。如果查看加载到console.info数据中的表,它看起来正常。解决方案是在加载数据后创建一个图表,但如何做..传输的数据看起来不错,但图表不是。看起来图表本身并没有回答一些随机数据。有时是缺少的类别,有时是图形中的一个。它看起来好像从未准备好,因为当我添加AmCharts.ready函数时,没有显示任何内容。
AmCharts.ready(function() {
for (i=0;i<=check;++i) {
        var graph = new AmCharts.AmGraph();
        graph.valueField = "count"+i+"";
        graph.balloonText = "[[value]]";
        graph.bullet = "round";
        graph.type = "smoothedLine";
        graph.lineAlpha = 1;
        graph.connect = true;
        graph.lineThickness = '2';
        //graph.fillAlphas = 1;
        chart.addGraph(graph);
}
var check = parametrTable.length -1;
var loaded = 0;
var data = [];
$.each(parametrTable, function(i, x) { // NOTE: x = parametrTable[i]
    $.getJSON("myurlwithparametr", function(json) {
        loaded++;
        $.each(json, function(j, d) {
            data[j] = data[j] || {};
            data[j]["count" + i] = d.count;
            if (i == 0) {
                data[j].category = d.column;
            }
        });
        if(loaded == check){
           loadChart(data);
        }
    });
});