1
私はIonic 3 Angular appでChart.jsを使用しています。実際に変更されたバーのデータを最新表示できないことを除いて、すべて正常に動作します。Ionic 3 Angular Chart.jsデータを更新する
ionViewDidLoad(){
this.barChart = new Chart(this.barCanvas.nativeElement,
{
type: 'bar',
data: {
labels: ["Safeway", "CVS", "Walgreens", "Bon Appetit"],
datasets: [{
label: "Pepsi",
backgroundColor: "#002F6F",
data: this.pepsiData
}, {
label: "Coke",
backgroundColor: "#F50000",
data: this.cockData
}, {
label: "V8",
backgroundColor: "orange",
data: [83,19,32,34]
}]
},
options: {
title: {
display: true,
text: 'Brands'
}
}
});
}
別々のボタンとしてpepsiData
アレイのデータを更新します:
this.pepsiData[3] = 80;
しかし、これは特定のバーをリフレッシュしません。ここ
はコードです。今私が持っている醜い解決策は、悪い解決策のように見えるチャート全体を再描画することです。
これはinit関数です。リフレッシュロジックはどこですか?リフレッシュをトリガーする場所はどこですか? – SrAxi
私はあなたが何かを購読する必要があり、変更されたデータに基づいてチャートを聞いて再ペイントするためにイベントハンドラを使用する必要があると思うでしょう。フォームからのものであれば、必ずReactiveFormsModuleを使用してください。イベントを変更したり、再ペイントするためにイベントを使用するために登録することができます。解決策全体を見ることなく、データが変更されたときに決定的な答えを出すのは難しいです。 – JGFMK
変更データの後に 'this.barChart.update()'を呼び出す必要があります – Duannx