我有一个配置为的路由路径:

{
    path: 'user/:id/edit/:type',
    component: UserEditTypeComponent,
},

我想到达拦截器的路径,可以从激活的路径访问该拦截器,如下所示:
constructor(private activatedRoute: ActivatedRoute) {
}

ngOnInit() {
    console.log(this.activatedRoute.routeConfig.path);
}

这将导致在控制台中返回此路径user/:id/edit/:type

我想从拦截器获得与我尝试过的路径相同的路径:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    let ar = this.injector.get(ActivatedRoute);
    console.log(ar.routeConfig.path);
}

这将返回错误:Cannot read property 'path' of null。我已经删除了路径并进行了测试,发现routeConfig为空。

我们如何在拦截器内部获取激活的路线?

还有其他方法可以在拦截器中访问path吗?

如果问题不清楚,可以用更多信息进行更新。

最佳答案

我知道这有点晚..但是下面的方法可以解决您的问题,有类似的担忧。

constructor(private activatedRoute: ActivatedRoute) {
    console.log(activatedRoute.snapshot['_routerState'].url);
}
activatedRoute.snapshot['_routerState'].url将包含您的/user/:id/edit/:type

关于angular - 检查拦截器的 Angular 路线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49732232/

10-12 15:29