问题描述
效果: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;}