Angular - 当状态发生变化时如何取消$ interval?

时间:2016-09-20 00:39:25

标签: angularjs

我正在使用ngRoute。 dashboardController上有$ $区间,如何在离开dashboard页后取消?我试着听$destroy。但是当我进入dashboard页面时,似乎会触发此事件。 $routeChangeSuccess也不起作用。

路线:

    .when('/dashboard', {
        templateUrl: 'dashboard.html',
        controller: 'dashboardController',
    })
    .when('/applications', {
        templateUrl: 'applications.html',
        controller: 'appController',
    })

dashboardController:

var update = $interval(function() {
  //.....
},1000)

$scope.$watch('$destroy', function(e) {
  $interval.cancel(update);
})

1 个答案:

答案 0 :(得分:2)

啊我第一次错过了!您有$scope.$watch,但应该是$on

以下代码将取消$destroy上的时间间隔,当您的路线发生变化时会调用该时间间隔。

$scope.$on('$destroy', function(e) {
  $interval.cancel(update);
});