Highchart.js传递数组不起作用

时间:2014-03-10 10:28:53

标签: javascript arrays highcharts

我正在尝试使用highchart.js。

这是我的代码

$.ajax({    type: "POST",
           url: "api/getListWeight",
           dataType: "json",
           data : {idBoxeur : idBoxeur} 

       }).done(function( dataWeightList ) {

           var data = [];

           $.each(dataWeightList, function( dataWeightList_index, dataWeightList_value ) {

              var splitDateRes = dataWeightList_value.weight_date.split("/");
              data.push("["+Date.UTC(splitDateRes[2],parseInt(splitDateRes[1], 10)-1,parseInt(splitDateRes[0], 10))+","+dataWeightList_value.weight_poids+"]");

           });

           var serie = data.join(",");

       }

上面的代码片段结果如下:

[1330300800000,76.8],[1347235200000,78.8],[1347580800000,77.4]

就像预期一样。

现在图表

$('#graph').highcharts({
    chart: {
        type: 'spline',
        zoomType: 'x'
    },
    xAxis: {
        type: 'datetime'
    },
    series: [{
        name: 'serie Name',
        data: [
                //pass serie from snippet above
                serie
        ]
    }]
});

结果:没有任何事情发生.Chart是空的。

只有我非常确定,如果我在我的代码中将serie替换为[1330300800000,76.8],[1347235200000,78.8],[1347580800000,77.4],[1348444800000,76.8],它就像魅力一样。

我做错了什么?我该如何解决?

阅读本文

1 个答案:

答案 0 :(得分:0)

你传递的字符串应该是JS对象。

那一行:

data.push("["+Date.UTC(splitDateRes[2],parseInt(splitDateRes[1], 10)-1,parseInt(splitDateRes[0], 10))+","+dataWeightList_value.weight_poids+"]");

应该是:

data.push([Date.UTC(splitDateRes[2],parseInt(splitDateRes[1], 10)-1,parseInt(splitDateRes[0], 10)),dataWeightList_value.weight_poids]);

这一行:

var serie = data.join(",");

是为了什么?请删除该行或至少删除该联接。