AngularJS - $ interval未被触发

时间:2015-12-22 18:19:33

标签: javascript angularjs

<强烈> header.html中

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

AlertsCtrl.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

AS建议,我已经注入了$interval服务。但它只刷新一次。它不会持续刷新。据我所知,我无法在控制台中找到任何错误。

编辑2

使用$interval调用false函数有效!即, $interval( function(){ $scope.fetchAlerts(); }, 3000, false);

1 个答案:

答案 0 :(得分:3)

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

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

来解决问题