Angular 已完成重定向后未重定向的防护
我遇到了一些关于警卫路线的奇怪问题。 情况如下: 页面A上有一个防护装置,防护装置检查它是否拥有访问该页面的所有内容。如果没有,它将重定向到B页,以获取它需要的所有信息,例如选择一个客户端。 当该用户在没有正确信息的情况下导航回A页时,它会被重定向回B页。 这就是一切都出错的地方,因为不允许用户进入页面A,我从警卫那里返回一个false并进行重定向。 但我的商店说路线是A页,但因为我拒绝导航,我仍然在B页 这种情况在代码中类似于以下内容: 防护装置Angular 已完成重定向后未重定向的防护,angular,ngrx-store,ngrx-router-store,Angular,Ngrx Store,Ngrx Router Store,我遇到了一些关于警卫路线的奇怪问题。 情况如下: 页面A上有一个防护装置,防护装置检查它是否拥有访问该页面的所有内容。如果没有,它将重定向到B页,以获取它需要的所有信息,例如选择一个客户端。 当该用户在没有正确信息的情况下导航回A页时,它会被重定向回B页。 这就是一切都出错的地方,因为不允许用户进入页面A,我从警卫那里返回一个false并进行重定向。 但我的商店说路线是A页,但因为我拒绝导航,我仍然在B页 这种情况在代码中类似于以下内容: 防护装置 canActivate(route: Acti
canActivate(route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): boolean {
if (got_what_i_need) {
return true;
} else {
this.store.dispatch(new RouterActions.Go({
path: ['pageB']
}
return false;
}
路线
const appRoutes: Routes = [
{ path: RoutePaths.pageA, loadChildren: './pageA', canActivate: [PortalDetectionGuard] },
{ path: RoutePaths.PageB, loadChildren: './pageB'},
有人知道我做错了什么吗?
此外,每当我返回false时,当前页面也不会被破坏或重新初始化
提前谢谢 尝试使用另一种导航策略:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
if (got_what_i_need) {
return true;
} else {
this.router.navigate(['page-B'])
}
return false;
}
为此,您需要在警卫的构造函数中插入路由器
constructor(private navigationService: NavigationService)
如果这不起作用,可能是“得到我所需要的”部分造成的 我已经尝试直接使用router.navigate,但效果相同。