我有一个很好的应用程序,它根据几个标准显示折线图。当主要标准发生变化时,我想清除当前的折线图。但是,我无法找到如何做到这一点。我正在使用 AngulerJS 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);
}
};
这将调用适当的函数来根据主要标准初始化折线图的数据。在网页中显示数据条目会显示正确的值。
在主要标准的选择框中,我调用该函数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>