0
updateSeriesメソッドを使用してDojo円チャートを更新しようとしています。更新されたjavascript配列データを取得するためにajax呼び出しを実行した後、メソッドを呼び出します。ここでAjaxコールの後にupdateSeriesを呼び出すとDojo Pieチャートが消えるのはなぜですか?
はJavascriptを次のとおりです。ここで
var eventByReasonsData = .... //gets populated on jsp page compile
var theme = dojox.charting.themes.Julie;
var eventReasonsChart = null;
function makeEventsByReason() {
var dc = dojox.charting;
eventReasonsChart = new dc.Chart2D("eventsByReasonChart");
eventReasonsChart.setTheme(theme).addPlot("default", {
type: "Pie",
font: "normal normal 8pt Tahoma",
fontColor: "black",
labelOffset: -20,
radius: 100
}).addSeries("eventSeries", eventByReasonsData);
var anim_a = new dc.action2d.MoveSlice(eventReasonsChart, "default");
var anim_b = new dc.action2d.Highlight(eventReasonsChart, "default");
var anim_c = new dc.action2d.Tooltip(eventReasonsChart, "default");
eventReasonsChart.render();
}
は私のHTMLです:
<div id="eventsByReasonChart" ></div>
そして、ここではJavaScriptがAJAX呼び出し作りです:
new Ajax.Request(url, {
method: 'post',
parameters: params,
onComplete: function(response) {
if(response.responseText != "empty")
{
var chart = eventReasonsChart;
eventByReasonsData = response.responseText;
chart.updateSeries("eventSeries", eventByReasonsData);
chart.render();
}
}
});
最後に、ここではどのようにあります私のデータはチャートに送られるときにフォーマットされます:
[{ y:48 },{ y:1 },{ y:1 },{ y:14 },{ y:7 },{ y:3 },{ y:8 }]
チャートが最初に描画されるとき、すべてはクールで問題はありません。 Ajaxコールをした後、私は新しいデータを受け取り、更新呼び出しが行われ、グラフが消えます。コンソールに表示されるエラーはありません。
素晴らしいです。完全に働いた。オリジナルのチャート作成はなぜ機能しますか? – ben
ところで、どうもありがとうございました。それは私にかなりの時間を与えました。 – ben
コンパイラがテキストリテラルを適切な配列に変換したため、慣習的に動作しました。 JSONで転送する場合は、明示的に行う必要があります。 –