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

浏览:29日期:2023-01-23

问题描述

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

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

<p ng-controller='ListController'>{{ t }}<p></p><button type='button' ng-click='stop()'>stop</button><button type='button' ng-click='start()'>start</button> </p>

’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(); }])

问题解答

回答1:

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

相关文章: