gpt4 book ai didi

javascript - Angular JS UI 路由

转载 作者:行者123 更新时间:2023-12-02 17:04:58 27 4
gpt4 key购买 nike

我正在尝试使用 angularJS UI 路由。我有三个网页,客户端可以通过某些链接访问第一页,但如果网址附加了 token ,我将在 Controller 中执行 $state.go('second-page') 。如果 token 为空,我将客户端保留在第一页上。但是我希望当客户端按下浏览器上的后退按钮时,客户端应该转到第一页。但这不会发生。

所以场景是

客户端通过链接来<​​/p>

'#/form/calendar/:officeId/:token'

由于 token 不为空,我转换到没有 URL 的第二个页面,URL 现在变为

'#/form/'

但是当客户端按下后退按钮时,它会尝试转到

'#/form/calendar/:officeId/:token'

这会导致循环转换到第二页,并且客户端永远无法到达第一页。

请告知如何避免这种情况。

谢谢

最佳答案

路由器中没有任何东西是专门为此设计的,但您自己实现起来相当容易。路由器发布一个您可以监听的 $stateChangeStart 事件。在第二个触发器上,您只想禁止此重定向。或者只是在那里进行一次重定向:

var redirected = false;
$rootScope.$on('$stateChangeStart', function(e, to, toParams, from, fromParams) {
// Redirect the user but only once
if (!redirected && toState.whateverYouWantToCheck) {
e.preventDefault();
redirected = true;
$state.go(...);
}
});

这将允许您执行重定向,但只能执行一次。

关于javascript - Angular JS UI 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25330405/

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