Pal*_*diN 5 angular angular-activatedroute
我有一个配置为的路由路径:
{
path: 'user/:id/edit/:type',
component: UserEditTypeComponent,
},
Run Code Online (Sandbox Code Playgroud)
我想到达拦截器的路径,可以从激活的路径访问该拦截器,如下所示:
constructor(private activatedRoute: ActivatedRoute) {
}
ngOnInit() {
console.log(this.activatedRoute.routeConfig.path);
}
Run Code Online (Sandbox Code Playgroud)
这将导致在user/:id/edit/:type控制台中返回此路径。
我想从拦截器获得与我尝试的相同的路径:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let ar = this.injector.get(ActivatedRoute);
console.log(ar.routeConfig.path);
}
Run Code Online (Sandbox Code Playgroud)
这将返回错误为:Cannot read property 'path' of null。我已删除路径并进行测试,发现routeConfig为空。
我们如何在拦截器内部获得激活的路线?
还有其他方法可以访问pathin拦截器吗?
如果问题不清楚,可以用更多信息进行更新。
小智 6
在查看实现后我让它像这样工作
constructor(private router: Router) {
console.log(this.router.routerState.snapshot.url);
}
Run Code Online (Sandbox Code Playgroud)
这将为您提供带有参数和所有内容的整个网址。喜欢:user/234?hasName=true&hasShoes=false
我知道这有点晚了..但以下将解决您的问题,有类似的担忧..
constructor(private activatedRoute: ActivatedRoute) {
console.log(activatedRoute.snapshot['_routerState'].url);
}
Run Code Online (Sandbox Code Playgroud)
activatedRoute.snapshot['_routerState'].url将包含您的/user/:id/edit/:type.
| 归档时间: |
|
| 查看次数: |
1913 次 |
| 最近记录: |