如何从 url 获取 Angular 解析器组件的 ID
How do I get id from url for Angular Resolver component
我正在使用解析器组件,但无法从 url 中获取 ID。
Stackblitz - https://stackblitz.com/edit/angular-x4djgz
在 stackblitz 中,如果我导航到 supplier/3
:
我从解析器得到 params.get('id') null
,从最终组件得到 params.get('id') 3
。如何在解析器中获取端点 ID。
route.paramMap.subscribe(
(params: ParamMap) => {
console.log("params.get('id')", params.get('id'));
}
);
这个问题已经过大量编辑,因为我最初认为这与 angular+electron 应用程序有关。
试试这个,
constructor(private route: ActivatedRoute) {
route.params.subscribe(
(params) => {
console.log("params.get('id')", params['id']);
});
}
您可以使用下面的代码片段在解析器中获取 ID,
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot)
: Observable<any> | Promise<any> | any {
let id = route.params['id'];
return this.service.get(id);
}
根据 the Angular doc, as you can see in example in the guide,resolve
方法采用两个参数,这两个参数与您尝试解析的实际路线有关。
在解析器中使用它可以解决问题:
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot){
console.log("params.get('id')", route.paramMap.get('id'));
return of('dummy').pipe(delay(50));
}
我正在使用解析器组件,但无法从 url 中获取 ID。
Stackblitz - https://stackblitz.com/edit/angular-x4djgz
在 stackblitz 中,如果我导航到 supplier/3
:
我从解析器得到 params.get('id') null
,从最终组件得到 params.get('id') 3
。如何在解析器中获取端点 ID。
route.paramMap.subscribe(
(params: ParamMap) => {
console.log("params.get('id')", params.get('id'));
}
);
这个问题已经过大量编辑,因为我最初认为这与 angular+electron 应用程序有关。
试试这个,
constructor(private route: ActivatedRoute) {
route.params.subscribe(
(params) => {
console.log("params.get('id')", params['id']);
});
}
您可以使用下面的代码片段在解析器中获取 ID,
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot)
: Observable<any> | Promise<any> | any {
let id = route.params['id'];
return this.service.get(id);
}
根据 the Angular doc, as you can see in example in the guide,resolve
方法采用两个参数,这两个参数与您尝试解析的实际路线有关。
在解析器中使用它可以解决问题:
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot){
console.log("params.get('id')", route.paramMap.get('id'));
return of('dummy').pipe(delay(50));
}