繁体   English   中英

如何从Angular Resolver组件的url获取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文档 ,正如您在指南中的示例中所看到的, resolve方法接受两个与您尝试解析的实际路径相关的参数。

在解析器中使用它可以解决问题:

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot){
    console.log("params.get('id')", route.paramMap.get('id'));
    return of('dummy').pipe(delay(50));
  }

https://stackblitz.com/edit/angular-4fkspm

您可以使用下面的代码段获取解析程序中的ID,

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot)
: Observable<any> | Promise<any> | any {
    let id = route.params['id'];
    return this.service.get(id);
}

尝试这个,

 constructor(private route: ActivatedRoute) {
    route.params.subscribe(
     (params) => {
       console.log("params.get('id')", params['id']);
     });
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM