2

jqPlot チャートで DateAxisRenderer と ajax を組み合わせようとすると、問題が発生します。以下のコードではエラーは発生しませんが、グリッド線がなく、y 軸にラベルがなく、データ ポイントがプロットされていないグラフが作成されます。2 つの x 軸ラベルが両方とも 1969 年 12 月 31 日と表示された空白の白いグラフの背景があります。

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'}
        }
    }
});

から返される 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]]

どんなアイデアでも大歓迎です!

4

1 に答える 1

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]]]
于 2013-03-13T06:58:23.220 に答える