AngularJS-$interval未被激发

AngularJS - $interval is not being fired

本文关键字:interval AngularJS-      更新时间:2023-09-26

header.html

<a ui-sref="fetchAlerts" ng-controller="AlertsCtrl"><img src="./assets/img/alert.png"><span class="badge">{{alertsCount}}</span></a>

警报Ctrl.js

app.controller('AlertsCtrl', ['$rootScope', '$scope', 'DummyFactory', function($rootScope, $scope, DummyFactory) {
  $scope.fetchAlerts = function() {
    DummyFactory.getAlerts()          //scala code to fetch background alert
      .success(function(data){
        console.log(data);
        $scope.alerts=data;
        $rootScope.alertsCount=Object.keys($scope.alerts).length;
      })
  };
  $interval( function(){ $scope.fetchAlerts(); }, 3000);
}]);

问题是我在$interval中的函数没有每隔3秒被调用一次,因此{{alertsCount}}没有得到更新。我不确定我做错了什么。

编辑1

按照建议,我已经注入了$interval服务。但它只刷新一次。它不进行连续刷新。据我所知,我在控制台中找不到任何错误。

编辑2

false调用$interval函数成功!即。,$interval( function(){ $scope.fetchAlerts(); }, 3000, false)

显然您忘记注入$interval,将函数定义更新为:['$rootScope', '$scope', 'DummyFactory', '$interval', function($rootScope, $scope, DummyFactory, $interval)

编辑:通过将$interval函数调用为$interval( function(){ $scope.fetchAlerts(); }, 3000, false); 来解决问题