var jsonData = {
"a": 10,
"b": 20
};
var ajaxDataRenderer = function (url, plot, options) {
var ret = null;
$.ajax({
type: 'POST',
dataType: 'json',
url: jsonurl,
data: {
json: JSON.stringify(jsonData)
},
success: function (data) {
$('#ajax').append(data.a).append( ['<br/>',data.b].join('') );
ret = data;
}
});
return ret;
};
var jsonurl = "/echo/json/";
var plot1 = $.jqplot('bar_chart', jsonurl, {
title: "AJAX JSON Data Renderer",
dataRenderer: ajaxDataRenderer,
dataRendererOptions: {
unusedOptionalUrl: jsonurl
}
});
我在jsfiddle中尝试过上面的代码。我收到ajax请求的响应,但jqplot不工作..请在此建议。以下div id在jsfiddle中定义
<div id="bar_chart"></div>
<h1>Mocking AJAX on jsfiddle</h1>
<div id="ajax"></div>
答案 0 :(得分:1)
Ajax渲染器正在等待数组以绘制绘图。你给它一个对象。 您必须将JS对象转换为数组:
var array = $.map(data, function(value, index) {
return [value];
});
return [array];
请查看工作小提琴here