#javascript #angularjs #timeout
#javascript #angularjs #тайм-аут
Вопрос:
я использовал этот код для таймера паузы:
при использовании $timeout
в angularjs как реализовать функциональность приостановки и возобновления
$scope.pause = function(){
window.clearTimeout(t);
}
timedcounter = function () {
time = time 1;
localStorage.autotimertime = time;
t = $timeout(timedcounter, 1000);
display(time);
}
Ответ №1:
В этом фрагменте я показываю время, и кнопка используется для остановки / перезапуска таймаута.
Вы должны добавить свою логику внутри onTimeout
функции
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>
Комментарии:
1. @GauravKumar Нет проблем, не забудьте пометить его как ответ
2. @GauravKumar Не забудьте отметить это как ответ для будущих зрителей
Ответ №2:
Чтобы отменить запрос на тайм-аут, вызовите команду $timeout.cancel(обещание).