我在我的角度4应用程序中使用路由保护,如果条件满足并返回true,我想在路径中添加查询参数。
这是我一直在处理的代码
@Injectable()
export class ViewGuardService implements CanActivate {
constructor(private router: Router) { }
canActivate(activatedRoute: ActivatedRouteSnapshot, snapshot: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
if(!this.router.url.includes('/order-management')) {
//ADD PARAMS TO ROUTE OR PASS DATA TO COMPONENT HERE AND THEN RETURN TRUE
return true;
} else {
this.route.navigate['/login'];
return false;
}
}
}
通常,要导航到带有参数的路线,我们可以将其用作this.router.navigate(['/order-management', activatedRoute.url[0].path], { queryParams: { moveToOrders: true }});
。但是如果我在if
条件下使用这个条件,那么结果是无限循环的函数调用。
那么如何将保护中的参数或数据传递给组件?请帮我解决这个问题。