Rickshaw JSを使用してグラフを作成しています。これを行うには、呼び出されたときグラフをレンダリングする関数を作成しました。 私が直面している問題は、スクリプトタグ内で呼び出されたときに、関数がすべて正常にレンダリングすることです。しかし、AJAX呼び出しの成功関数から呼び出されると、軸は表示されません。Rickshaw AJAX成功関数内で呼び出されたときのJS軸レンダリングの問題
関連するコードスニペット:
<script>
function ProbabilityPlot(a) {
var graph = new Rickshaw.Graph({
...
});
graph.render();
var xAxis = new Rickshaw.Graph.Axis.X({
...
});
xAxis.render();
var yAxis = new Rickshaw.Graph.Axis.Y({
...
});
yAxis.render();
};
$.ajax({
url: plotURl,
dataType: 'json',
cache: false,
success: function(data) {
ProbabilityPlot([ {{plot_data}} ]); <-- axes do NOT work
}
});
ProbabilityPlot([ {{plot_data}} ]); <-- eveything works perfectly
</script>
Iは、関数に渡されたパラメータは、両方の場合で同じであることを検証することができます。
コード内で '.bind(this)'のポイントは何ですか?コールバック関数をバインドするものは何もありません。また、中括弧は一致しません。あなたのコードの字下げを修正し、中括弧にマッチさせ、あなたのコールバックで 'this'が指し示すものを説明してください。 – Tomalak
現在、私は_ {{plot_data}} _によって表される静的データを取得します。今私は非同期データを取得するAJAXに切り替えています。私はこの関数をグラフのDOM要素に結びつけるためにbind(this)を使っていました。質問のコードをさらに更新しました。 – Shubham
元のスニペットから_bind(this)_を削除しました。私が直面している問題とは無関係だと感じました。 – Shubham