私はjsとjqueryで完全なnewbですが、FlaskとAjaxリクエストを使用して適切に表示するためのチャートを取得する方法を邪魔しています。私が問題を抱えているところでは、チャートデータをリフレッシュすることになっています。charts.jsがajaxリクエスト後に更新されない
$(document).ready(function() {
var getdata = $.post('/charts');
var ctx = document.getElementById('myChart').getContext('2d');
var myChart
getdata.done(function(results){
var chartData = {
labels: results['month'],
datasets: [{
label: 'Debits',
data: results['debit'],
backgroundColor: "rgba(153,255,51,0.4)"
}, {
label: 'Credits',
data: results['credit'],
backgroundColor: "rgba(255,153,0,0.4)"
}, {
label: 'Balance',
data: results['balance'],
backgroundColor: "rgba(50,110,0,0.4)"
}]
}
myChart = new Chart(ctx, {type: 'line', data: chartData});
});
$("form :input").change(function() {
year = $(this).val();
console.log(year)
$.ajax({
type: "POST",
url: "/data",
data: {'year':year},
success: function(results){
var updatedData = {
labels : results['month'],
datasets : [{
label: 'Debits',
data: results['debit'],
backgroundColor: "rgba(153,255,51,0.4)"
}, {
label: 'Credits',
data: results['credit'],
backgroundColor: "rgba(255,153,0,0.4)"
}, {
label: 'Balance',
data: results['balance'],
backgroundColor: "rgba(50,110,0,0.4)"
}]
}
myChart= new Chart(ctx, {type: 'line', data: updatedData});
}
});
});
});
次のコードのように、私は新しいグラフとしてそれを作成した場合、私はうまく表示するチャートを得ることができます。しかし、私は
myChart.update(updatedData)
何にも最後の行を変更した場合に起こる、私はドン何らかのエラーが発生した場合、グラフは更新されません。何もない。奇妙なことは、myChartがAjaxリクエストの後に再度作成する必要がないので、myChartがグローバルであることが分かっていることです。
おかげでデータを変更し、更新を呼び出すcharts.jsのドキュメント(http://www.chartjs.org/docs/#getting-started-creating-a-chart)から