У меня есть следующая угловая функция, которая автоматически обновляет данные в представлении с помощью вызова $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?