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

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

这是代码

  1. x = 2;
  2.  
  3. var multiply = function () {
  4. x = x * 2;
  5. if (x == 134217728) {
  6. $interval.cancel($scope.stop);
  7. $scope.stop = 0;
  8. }
  9. }
  10.  
  11.  
  12. $scope.Result = function () {
  13. $scope.stop = $interval(multiply,1000);
  14. }
  15.  
  16. $scope.Result();

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

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

例如.

  1. controller('MyController',function($rootScope,$interval) {
  2. $scope.stop = $interval(yourOperation,1000);
  3.  
  4. var dereg = $rootScope.$on('$locationChangeSuccess',function() {
  5. $interval.cancel($scope.stop);
  6. dereg();
  7. });
  8.  
  9. function yourOperation() {}
  10. };

猜你在找的Angularjs相关文章