Effect: http://runjs.cn/detail/iyvy6dl7
After opening, clicking stop for the first time will be effective, but clicking stop after starting will be invalid.
<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();
}])