如何添加查询参数以保护路由并将其传递给Angular 4中的组件?

时间:2017-11-22 07:02:09

标签: javascript angular angular-routing

我在我的角度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条件下使用这个条件,那么结果是无限循环的函数调用。

那么如何将保护中的参数或数据传递给组件?请帮我解决这个问题。

0 个答案:

没有答案