Angular guard中的canActivate函数执行了两次
Angular canActivate function in guard executed twice
我正在使用 Angular 8,如果满足特定条件,我会使用 window.open(url) 在单独的选项卡中打开一个页面,然后returns false 因为我不想离开我所在的当前页面。
我在 canActivate 函数中执行此逻辑:
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot):
Observable<boolean | UrlTree> |
Promise<boolean | UrlTree> | boolean | UrlTree {
if(condition)
window.open(url)
return false;
}
我的问题是 canActivate 函数被连续调用两次,导致新选项卡打开两次。
我该如何解决?
这就是我在 app.routing.constant
找到我的守卫的方式
{
path: dashboardRoutes.MY_ROUTE,
component: BlankComponent,
canActivate: [MyGuard]
},
发现问题,我在html组件中使用[routerLink]
路由,在ts中使用this.router.navigate
路由,所以这个func真的被调用了两次。我的错误,希望这可以帮助任何有类似问题的人
我正在使用 Angular 8,如果满足特定条件,我会使用 window.open(url) 在单独的选项卡中打开一个页面,然后returns false 因为我不想离开我所在的当前页面。
我在 canActivate 函数中执行此逻辑:
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot):
Observable<boolean | UrlTree> |
Promise<boolean | UrlTree> | boolean | UrlTree {
if(condition)
window.open(url)
return false;
}
我的问题是 canActivate 函数被连续调用两次,导致新选项卡打开两次。 我该如何解决?
这就是我在 app.routing.constant
找到我的守卫的方式{
path: dashboardRoutes.MY_ROUTE,
component: BlankComponent,
canActivate: [MyGuard]
},
发现问题,我在html组件中使用[routerLink]
路由,在ts中使用this.router.navigate
路由,所以这个func真的被调用了两次。我的错误,希望这可以帮助任何有类似问题的人