带有DateAxisRenderer和ajax的jqPlot

nol*_*232 2 jquery jqplot

我试图在jqPlot图表上组合DateAxisRenderer和ajax遇到困难.下面的代码不会产生任何错误,但会创建一个没有网格线的图表,y轴上没有标签,也没有绘制数据点.只有一个空白的白色图表背景,有两个x轴标签,都是12月31日,69日.

如果我换掉ajaxDataRenderer并使用数组中的数据,就像在这个例子中所做的那样(http://www.jqplot.com/tests/date-axes.php),一切都正确呈现.

这是我的Javascript:

var ajaxDataRenderer = function(url, plot, options) {
   var ret = null;
   $.ajax({
        async: false,
        url: url,
        type: "GET",
        dataType:"json",
        success: function(data) {
            ret = data;
        },
        error:function (xhr, ajaxOptions, thrownError){
            alert(xhr.responseText);
        }
   });
   return ret;
};

var jsonurl = "http://localhost:8080/chartdata";
var plot2 = $.jqplot('chart2', jsonurl, {
    title:'Customized Date Axis',
    dataRenderer: ajaxDataRenderer,
    axes:{
        xaxis:{
           renderer:$.jqplot.DateAxisRenderer,
           tickOptions:{formatString:'%b %#d, %y'}
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

返回的JSON jsonurl看起来像:

[["2008-09-30 4:00PM",15],["2008-10-30 4:00PM",8],["2008-11-30 4:00PM",17],["2008-12-30 4:00PM",10]]
Run Code Online (Sandbox Code Playgroud)

任何想法将不胜感激!

nol*_*232 7

我解决了这个问题.从服务器返回的JSON需要包装在另一组方括号中.

它应该看起来像:

[[["2008-09-30 4:00PM",15],["2008-10-30 4:00PM",8],["2008-11-30 4:00PM",17],["2008-12-30 4:00PM",10]]]
Run Code Online (Sandbox Code Playgroud)

  • 你让我今天一整天都感觉很好. (2认同)