我是 AngularJS 的新手,有一个关于仅当从服务器检索到新数据时才刷新页面的快速问题。
我四处搜索,但找不到与我的问题类似的问题。
我有一个带有 intervalPromise 的服务和 Controller ,如下所示:
我的服务
angular.module('MyService', ['ngResource']).
factory('Data', function($resource){
return $resource('rest/getMyData', {});
});
我的 Controller
function MyController($scope,$interval,$http, Data) {
$scope.refresh = function() {
$scope.jobs = Data.query();
};
$scope.intervalPromise = $interval(function(){
$scope.refresh();
}, 10000);
// initial load of data
$scope.refresh();
}
数据每 10 秒从服务器成功检索一次,但我希望页面仅在找到新数据时刷新。
如果能指出正确方向,我们将不胜感激。
最佳答案
您可以将从服务器接收到的数据与您当前的数据集 ($scope.jobs
) 进行比较,并且仅在它们不同时更新 $scope.jobs
。
function MyController($scope,$interval,$http, Data) {
$scope.refresh = function() {
var serverData = Data.query();
if( serverData !== $scope.jobs ) {
$scope.jobs = serverData;
}
};
$scope.intervalPromise = $interval(function(){
$scope.refresh();
}, 10000);
// initial load of data
$scope.refresh();
}
关于javascript - 仅当使用 AngularJS 从服务器发现新数据时才自动刷新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28181216/