加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 08:54:05 所属栏目:安全 来源:网络整理
导读:我在更改路线时遇到有关$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,1
我在更改路线时遇到有关$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() {}
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读