Переменная Angular Scope добавляет результат из переменной $ http в переменную данных, а не перезаписывает ее - PullRequest
0 голосов
/ 06 мая 2018

У меня есть следующая угловая функция, которая автоматически обновляет данные в представлении с помощью вызова $http, вызванного на $interval

app.controller("processModel", function ($scope, $http, $interval) {

    $scope.data

    $scope.LoadData = function() {
        $http({
            method: "GET",
            url: 'Home/DataRefresh',
            params:{'_': +new Date() }
        }).then(function success(response) {
            $scope.data = response.data;


  }, function error(errResponse) {
            alert("data " + errResponse.data + " status " + errResponse.status + " headers " + errResponse.headers + "config " + errResponse.config + " statusText " + errResponse + " xhrStat " + errResponse.xhrStatus);
        });
    };  

    // Initial data load
    $scope.LoadData();
    // Refresh data on an interval
    $interval($scope.LoadData, 10000);
});

Он вызывается, и данные отображаются со следующим HTML

    <main class="container" role="main" ng-controller="processModel">

        <div class="jumbotron">
            <table>
                <tbody>

                    <tr ng-repeat="item in data">

                        <td>{{item.info}}</td>

                    </tr>

                </tbody>
            </table>
        </div>

    </main>

Проблема, с которой я столкнулся, заключается в том, что когда Home / DataRefresh вызывается каждые 10 секунд, представление просто добавляет новые (и повторяющиеся) элементы в конец существующей таблицы, а не перезаписывает ее. Поэтому он либо добавляет новые значения к $scope.data, либо не выполняет автоматическое повторное редактирование таблицы, созданной с помощью ng-repeat.

Что я могу сделать, чтобы перезаписать содержимое таблицы новыми данными, полученными из Home / DataRefresh?

1 Ответ

0 голосов
/ 09 мая 2018

Это была проблема с кодом на стороне сервера, он не очищал кеш, когда выполнял новый вызов Get для базы данных. Угловой работал нормально.

...