Angular Chartjs如何使其对数据更改做出反应

Angular Chartjs How to make it reactive to data change?

本文关键字:数据 Chartjs 何使其 Angular      更新时间:2023-09-26

我正在尝试编写一个应用程序,该应用程序将显示API中的一些数据,在工作过程中,我将能够更改我希望在图表上显示的时间和日期范围。

现在,我正在与基本数据的更改作斗争。

我有一个简单的图表代码:HTML:

<button type="button" class="btn btn-success" ng-click="ReloadChart();">Reload</button>
<div class="col-lg-12 col-sm-12" id="line-chart" ng-controller="LineCtrl">
    <div class="panel panel-default">
        <div class="panel-heading">Line Chart</div>
        <div class="panel-body">
            <canvas id="line" class="chart chart-line" chart-data="data" chart-labels="labels"
                    chart-legend="true"
                    chart-click="onClick" chart-hover="onHover" chart-series="series"
                    chart-options="{pointHitDetectionRadius: 1}"></canvas>
        </div>
    </div>
</div>

和JS:

$scope.labels = ["January", "February", "March", "April", "May"];
$scope.series = ["Temperatura"];
$scope.data = [[22, 33, 44, 55, 22]];
$scope.ReloadChart = function () {
    console.log("Reloading chart");
    $scope.labels =
        ["January", "February", "March", "April", "May", "June", "July"];
    $scope.series = ["Temperatura"];
    $scope.data = [[65, 59, 80, 81, 56, 55, 40]];
}

当然,这只是较长代码的一部分。这部分我想做的是用ReloadChart()函数中的新数据重新加载图表。但问题是,一切都没有改变。在控制台中,我有"重新加载图表",但图表仍然是一样的。

我做错了什么?

ng-controller="LineCtrl"移动到按钮元素之外,否则将涉及错误的范围。