angularjs – $interval函数在我改变路线时继续

前端之家收集整理的这篇文章主要介绍了angularjs – $interval函数在我改变路线时继续前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在更改路线时遇到有关$interval功能的问题.

这是代码

x = 2;

 var multiply = function () {
     x = x * 2;
     if (x == 134217728) {
         $interval.cancel($scope.stop);
         $scope.stop = 0;
     }
 }


 $scope.Result = function () {
     $scope.stop = $interval(multiply,1000);
 }

 $scope.Result();

当x <134217728时,我改变路线以移动到另一页面.问题是路由更改后$interval不会停止.我将promise存储在$scope模型中的变量stop中.我认为$scope在路由改变后不会破坏,这就是$interval继续的原因. 我该如何解决这个问题?

你可以使用$interval.cancel($scope.stop);在控制器/服务中调用$locationChangeSuccess时.

例如.

controller('MyController',function($rootScope,$interval) {
  $scope.stop = $interval(yourOperation,1000);

  var dereg = $rootScope.$on('$locationChangeSuccess',function() {
    $interval.cancel($scope.stop);
    dereg();
  });

  function yourOperation() {}
};
原文链接:https://www.f2er.com/angularjs/141029.html

猜你在找的Angularjs相关文章