AJAX 成功イベントにこのコードがあります。この AJAX は、日付範囲が変更および更新された後に起動します。返すデータがない場合は、空 == true の json 配列を返します。
AJAX イベントが発生する前にチャートにデータがあった場合、ネストされた if 条件が発生し、各データ シリーズが削除されます。
問題は、グラフが最初にデータなしでロードされ、ユーザーが日付を変更し、AJAX が起動し、if 条件がまだ起動している場合にデータが表示されず、エラーが発生する場合です。Uncaught TypeError: Cannot read property 'series' of undefined
チャート シリーズにデータが正しく含まれているかどうかを確認していませんか? 系列の長さが 0 より大きいかどうかを示す if 条件ではなく、while ループを実行しますか? シリーズにデータがない場合、while ループをスキップするにはどうすればよいですか?
var chart = $('#chart').highcharts();
if (data.empty == 'true') {
alert('empty');
$('#chart').html( "<div class='empty-chart'>No data available for selected date range</div>" );
if (chart.series.length > 0) {
while (chart.series.length > 0) {
chart.series[0].remove(true);
}
}
}