gpt4 book ai didi

javascript - AngularJS:为每个页面切换重置$timeout

转载 作者:行者123 更新时间:2023-11-28 08:30:54 25 4
gpt4 key购买 nike

我正在开发我的第一个 AngularJS 项目,并且正在研究一个超时,如果用户没有单击任何内容,则在几分钟后将用户重定向到起始页。每次页面加载时都会调用 timeout 以重新启动超时。

但我的问题是 restart() 被多次调用。每个页面/ View 加载一次。我使用 ngRoute。
例如,如果点击了三个页面,那么 timeout() 现在已经被调用了 3 次,当 $timeout 达到该时间时,restart() 被调用了 3 次。

myapp.controller(..., [...], function(...) {

function restart() {
$location.path("/slide/1");
}

function timeout() {
var timeoutHandle = $timeout(function() {

$timeout.cancel(timeoutHandle);
restart();

}, timeoutTime);
}

timeout();
}

最佳答案

尝试使用此代码:

var redirectTimeout;

var redirect = function() {
$location.path("/slide/1");
}

$timeout.cancel(redirectTimeout);

redirectTimeout = $timeout(function() {
var timeoutTime = 5000 // five seconds
redirectTimeout = $timeout(redirect, timeoutTime);
});

这是JSFiddle

关于javascript - AngularJS:为每个页面切换重置$timeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21878708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com