我正在使用Auth Guard来检查登录和canActivate内部,如果用户未登录,但我正在路由要登录的页面,但是在重定向时,我丢失了所有查询参数。我想保留我尝试过{ queryParamsHandling: "preserve", }
的所有查询参数,但是在这里不起作用
canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): boolean {
let url: string = state.url;
return this.checkLogin(url, route);
}
checkLogin(url: string, route: ActivatedRouteSnapshot): boolean {
if (this.common.isUserLoggedIn()) {
return true;
} else {
this.router.navigate(["/login"], { queryParamsHandling: "preserve" });
return false;
}
}
答案 0 :(得分:0)
尝试返回urlTree而不是布尔值。
canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): boolean | UrlTree {
let url: string = state.url;
return this.checkLogin(url, route);
}
checkLogin(url: string, route: ActivatedRouteSnapshot): boolean | UrlTree {
if (this.common.isUserLoggedIn()) {
return true;
} else {
return this.router.createUrlTree(["/login"], {queryParamsHandling: "preserve" });
}
}