いくつかの基準に基づいて折れ線グラフを表示する素晴らしいアプリケーションがあります。主な基準が変更されたら、現在の折れ線グラフをクリアしたい。ただし、これを行う方法がわかりません。私はAngularJS v1.4.0-rc2、Chart.js v1.0.2、angular-chart v0.7.1を使用しています。
ページをロードするとき、関数を呼び出しますupdateSelection()
。この関数は、他の基準のいずれかが変更されたときにも呼び出されます。関数は次のように実装されます。
$scope.updateSelection = function() {
$scope.chartLabels = maandData;
if ($scope.isPostcodeArea()) {
$scope.chartSeries = getPostcodeSeries();
$scope.chartData = getPostcodeData($scope.dataArea.index, $scope.dataMetric.index);
} else {
$scope.chartSeries = getSelectionSeries();
$scope.chartData = getSelectionData($scope.dataArea.index, $scope.dataMetric.index);
}
};
これにより、適切な関数が呼び出され、主な基準に基づいて折れ線グラフのデータが初期化されます。Web ページにデータ エントリを表示すると、正しい値が表示されます。
主な基準の選択ボックスで、関数を呼び出しますupdateArea()
:
$scope.updateArea = function() {
$scope.form.$setPristine();
if ($scope.isPostcodeArea()) {
$scope.postcodeSelection = null;
$scope.postcodeCompare1 = null;
$scope.postcodeCompare2 = null;
$scope.postcodeCompare3 = null;
} else {
$scope.selectionData = null;
$scope.selectionCompare1 = null;
$scope.selectionCompare2 = null;
$scope.selectionCompare3 = null;
}
$scope.selections = getSelections($scope.dataArea.index);
$scope.selectionLabel = $scope.areas[$scope.dataArea.index].label;
$scope.chartLabels = [];
$scope.chartSeries = [];
$scope.chartData = [];
};
この関数は、入力フォームとフォーム データをリセットします。また、別の基準のデータ ( selections
)、基準に適したラベル( ) を決定しselectionLabel
、チャート データをリセットする必要があります。
ただし、チャートは新しいデータを反映するように更新されません。それで、データを正しくリセットする方法はありますか?
グラフ自体は、次の HTML を使用して表示されます。
<canvas id="line" class="chart chart-line"
data="chartData" labels="chartLabels" series="chartSeries"
legend="true" options="{'scaleBeginAtZero': true, 'datasetFill': false}">
</canvas>