gpt4 book ai didi

Angular4 路由 : Force Navigation By Bypassing Route Guard

转载 作者:太空狗 更新时间:2023-10-29 17:52:08 24 4
gpt4 key购买 nike

当我的用户在屏幕上进行脏更改时,我有一个路由守卫在他们尝试导航离开时提示他们保存或丢弃。

但是,如果我由于不活动而将他们注销,我想强制导航并绕过路由守卫(通过丢弃他们的更改),以确保他们的屏幕是空白的。

如何绕过路由守卫?

最佳答案

我的解决方案如下:

我的 logout 方法在成功注销后,将应用程序重定向到 /login 路由:

@Injectable
export class AuthService {
// ...
logout () {
// do logout
this.router.navigate(['/login']);
}
}

然后我的守卫如下:

@Injectable
export class DiscardChangesGuard implements CanDeactivate<MyComponent> {

canDeactivate(component: MyComponent, currentRoute: ActivatedRouteSnapshot,
currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable<boolean> | boolean {

if (nextState.url === '/login') {
return true; // bypass checks if we are trying to go to /login
}

// perform regular checks here
}
}

关于Angular4 路由 : Force Navigation By Bypassing Route Guard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43766938/

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