在angularjs中使用$timeout时,如何暂停和恢复计时器
how to pause and resume the timer when using $timeout in angularjs
我使用以下代码作为暂停定时器:
在angularjs中使用$timeout
时如何实现暂停和恢复功能
$scope.pause = function(){
window.clearTimeout(t);
}
timedcounter = function () {
time = time + 1;
localStorage.autotimertime = time;
t = $timeout(timedcounter, 1000);
display(time);
}
在这个代码片段中,我显示了时间,并使用了一个按钮来停止/重新启动超时。
您应该在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>
要取消一个超时请求,调用$timeout.cancel(promise).
相关文章:
- 如何临时暂停浏览器渲染,然后恢复整个页面
- jQuery循环在特定位置暂停
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- 最小化时暂停Javascript动画
- jQuery:暂停按钮可以暂停所有其他操作
- tiltSlider播放/暂停视频元素(如果li有当前类)
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- CSS动画暂停并使用javascript播放
- 如何暂停和恢复jquery间隔
- 如何在隐藏时暂停jquery计时器
- 具体化:如何只使用HTML和Javascript制作播放/暂停按钮
- 在 jquery 中定位暂停和播放按钮
- 暂停文档-HTML、CSS、JavaScript
- 如何在悬停时暂停setInterval
- 暂停函数执行流程,直到ajax请求完成
- 使用javascript和随机暂停/超时快速循环文本
- 如何暂停网页
- HTML5画布-暂停时的运行时间
- 避免在钛合金加速器中暂停应用程序
- 我的HTML5游戏不时暂停,我如何才能知道它是否's是由垃圾收集引起的