javascript - 仅当使用 AngularJS 从服务器发现新数据时才自动刷新数据

标签 javascript angularjs angularjs-scope angular-promise

我是 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/

相关文章:

javascript - 在 Knockoutjs 上操作 DOM 元素 "before-value-changed"

javascript - 如何同时执行两个或多个 JavaScript 函数?

javascript - 如何创建编辑按钮在 CRUD 中正常工作?

javascript - Node.js:何时使用 Promises 与 Callbacks

javascript - 使用 Angular JS 和 Ionic 动态插入 JSON 项目

javascript - Bootstrap AngularJS

javascript - AngularJS:无法从 ctrl 范围获取变量值到指令中

javascript - 如何访问angularjs中 promise 函数之外的对象

javascript - $state 或 $location 更改时 Angular ui.router 无限循环

angularjs - 如何在 AngularJS 中连接相邻的隔离范围