2016-10-14 2 views
1

에 $ 제한 시간을 사용하는 경우 타이머를 다시 시작 전 일시 정지 타이머에이 코드를 사용하는 방법 다음을 취소하려면 기능을일시 정지 및 AngularJS와

$scope.pause = function(){ 
      window.clearTimeout(t); 

     } 

timedcounter = function() { 
     time = time + 1; 
     localStorage.autotimertime = time; 
     t = $timeout(timedcounter, 1000); 
     display(time); 
} 

답변

0

을 일시 정지를 구현하고 다시 시작하는 방법 AngularJS와의 $timeout를 사용하는 경우

을 시간 초과 요청은 $ timeout.cancel (promise)을 호출하십시오.

1

이 스 니펫에서는 시간을 표시하고 시간 제한을 중지/다시 시작하는 데 버튼을 사용합니다.

var app = angular.module('myapp', []); 
 
app.controller('myCtrl', function($scope, $timeout) { 
 
    $scope.time = 0; 
 
    $scope.stopped = false; 
 

 
    $scope.onTimeout = function() { 
 
    $scope.time = $scope.time + 1; 
 
    //Your logic here 
 
    //localStorage.autotimertime = time; 
 
    //display(time); 
 
    mytimeout = $timeout($scope.onTimeout, 1000); 
 

 
    } 
 

 
    var mytimeout = $timeout($scope.onTimeout, 1000); 
 

 
    $scope.stopTimeout = function() { 
 
    $scope.stopped = true; 
 
    $timeout.cancel(mytimeout); 
 
    } 
 

 
    $scope.restatTimeout = function() { 
 
    $scope.stopped = false; 
 
    mytimeout = $timeout($scope.onTimeout, 1000); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myapp" ng-controller="myCtrl"> 
 
    <p ng-bind="time"></p> 
 
    <button ng-click="stopTimeout()" ng-show="!stopped">STOP ME !</button> 
 
    <button ng-click="restatTimeout()" ng-show="stopped">RESUME ME!</button> 
 
</div>

+0

이 고맙습니다 ... 노력하고 있습니다 ... 아무 문제가 잊지 않는다 @GauravKumar : –

+0

그것을 표시

당신은 onTimeout 함수 내에서 로직을 추가해야합니다 대답은 – Weedoze

+0

@GauravKumar는 미래의 시청자를위한 답으로 표시하지 않습니다. – Weedoze