Angular:从控制器为服务中的属性添加EvenListener

时间:2015-09-18 10:59:31

标签: angularjs service controller event-listener

目前我有一项服务:

angular.module('todoApp')
  .service('timeoutSrv', function() {
    var counter = 0;
function increment() {
  counter++;
}

function decrement() {
  counter--;
}

function getCounter() {
  return counter;
}

return {
  increment: increment,
  decrement: decrement,
  getCounter: getCounter
    };
  });

然后我想附加一个eventlistener,"听"对于变量counter

的更改

我的控制器看起来像这样:

  angular.module('todoApp')
  .controller('TimeoutcheckCtrl', function ($scope, timeoutSrv) { 
    timeoutSrv.addEventListener(function listener(counter) {
        $scope.loading = counter;
     }) 
  });

我收到以下错误:timeoutSrv.addEventListener is not a function。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在Angular中如果要检查更改,就像C#中的eventListener一样,那么你想要使用内置函数$ watch:

https://docs.angularjs.org/api/ng/type/$rootScope.Scope

$scope.$watch("counter", function() {
  // Put code you want triggered in here
}