gpt4 book ai didi

javascript - 单击注销时如何在 Angular 中调用 canDeactivate

转载 作者:太空狗 更新时间:2023-10-29 18:24:26 27 4
gpt4 key购买 nike

在我当前的注销调用中,我有这样的事情:

 getLogoutConfirmation(){
// get confirmation in modal and perform logout
// redirect to login page
}

问题是,当执行注销并调用重定向到登录时,会在该路由上调用 canDeactivate 守卫,但用户已经注销。

那么我如何在执行注销之前调用 canDeactivate guard 并在用户不想离开时取消注销操作。

谢谢。

最佳答案

不要立即注销,只需导航到您的目标(登录?)位置并添加一些额外的参数。然后将“canActivate”守卫添加到您的目标(登录名?)位置,检查您的额外参数,并在那里进行实际注销。通过这种方式,注销不会干扰您的 canDeactivate 守卫,并且会在正确的时间发生(如果 canDeactivate 说好)。

改变:

userLogout() {
this.authenticationService.logout();
this.router.navigate(['login']);
}

收件人:

userLogout() {
this.router.navigate(['login'], { queryParams: { logout: true }});
}

然后在 canActivate 守卫中做这样的事情:

canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): ... {
if ('true' === next.queryParamMap.get('logout')){
this.authenticationService.logout();
}

关于javascript - 单击注销时如何在 Angular 中调用 canDeactivate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48186833/

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