尝试在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'}
}
}
});
从jsonurl
返回的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]]
任何想法都会非常感激!
答案 0 :(得分: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]]]