按下后退按钮后停止角度$timeout计时器
Stop angular $timeout timer after hitting back button
在我的Angular应用程序中,我有第1页和第2页。
第1页基本上是带有链接到第2页的按钮的主页。
第1页有一个名为Page1App的角度应用程序和一个称为Page1Ctrl控制器。第2页有一个名为Page2App的角度应用程序和一个称为Page2Ctrl控制器。
Page1App将Page2App 在第2页中,有一个计时器,它的工作原理与这个JSFiddle中的计时器类似(下面重复代码) 问题是,当我从Page2返回Page1时,计时器会在后台继续运行,偶尔会弹出一个 当用户离开第2页时,我如何使它停止?angular.module('Page1App', ['Page2App']);
$scope.nextPic = function() {
$timeout.cancel(picTimeout)
if (++$scope.picIndex >= $scope.pics.length) $scope.picIndex=0
picTimeout = $timeout($scope.nextPic, 2000)
}
$scope.prevPic = function() {
$timeout.cancel(picTimeout)
if (--$scope.picIndex < 0 ) $scope.picIndex=$scope.pics.length-1
picTimeout = $timeout($scope.nextPic, 2000)
}
picTimeout = $timeout($scope.nextPic, 2000)
alert
-如果您在Page2上,这是可以的,但如果您已经离开Page2,则不可以。
您可以侦听范围破坏事件侦听器并清除超时。
例如:
$scope.$on('$destroy', function() {
$timeout.cancel(picTimeout);
});
检查作用域的$destroy
事件的DOC。
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 设置倒计时计时器,IE出现问题
- MobileFirst:在客户端运行计时器作业-最佳选项
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 倒计时计时器应该持续两个php页面
- 在Jquery倒计时计时器上设置每个数字的动画
- 我如何才能确保计时器设置为每天4点半,所以我不会;不用在Javascript中提及某个日期
- 如何禁用窗口.当计时器超时时,打开卸载警报
- 在Nodejs中为许多用户处理计时器
- 如果弹出窗口关闭,Javascript停止/重置计时器
- 如何在隐藏时暂停jquery计时器
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 计时器循环从不运行
- Progressbar计时器,仅在页面刷新时重新加载
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 递归倒计时计时器
- Jquery时间启动计时器,我有一个计时器的代码,但它在页面加载时启动
- 创建一个倒计时计时器(SetInterval/Timeout谷歌Chrome标签"错误")
- 在angularjs中使用$timeout时,如何暂停和恢复计时器
- 按下后退按钮后停止角度$timeout计时器