angular 倒计时 只第一次暂停有效

发布于 2022-09-01 20:42:37 字数 1242 浏览 8 评论 0

效果:http://runjs.cn/detail/iyvy6dl7

打开后,第一次点stop是生效的,但开始后再点stop就无效了。

  <div ng-controller="ListController">
        {{ t }}
        <p></p>
        <button type="button" ng-click="stop()">stop</button>
        <button type="button" ng-click="start()">start</button>
  </div>
    'use strict';
    var myModule = angular.module("myModule",[])
    .controller('ListController', ['$interval','$scope', function($interval, $scope){

        var t, isPause, timePromise;

        $scope.t = 100;  

        var runTiming = function(){
          timePromise = $interval(function(){
              $scope.t -= 1;
          }, 1000, 100);
        }

        $scope.stop = function(){
          if(angular.isDefined(timePromise)){
            $interval.cancel(timePromise);
            timePromise = undefined;
            $scope.isPause = true;
          }
        }

        $scope.start = function(){
          if(angular.isDefined(timePromise)) return;
            timePromise = runTiming();
            $scope.isPause = false;
        }

        runTiming();  
      
    }])

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一抹微笑 2022-09-08 20:42:37
var runTiming = function(){
          timePromise = $interval(function(){
              $scope.t -= 1;
          }, 1000, 100);
          return timePromise;
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文