在Angular 4中使用路由参数,其中ID为字符串。

3
如何使用 ID 是字符串的路由参数?

{path: 'param/:id', component: MyComponent}

let id = this.route.snapshot.params['id'];

Any idea

块引用


什么问题?你想从 URL 中获取 ID 吗?你想使用 ID 进行导航吗? - Shailesh Ladumor
问题不清楚。 - Jota.Toledo
是的,我想使用ID进行导航。但在Angular中,ID的类型是数字,我希望ID的类型是字符串。 - xi ha ti no
你的id变量应该是字符串类型。在调试器中设置一个断点,亲自查看一下。 - Yakov Fain
2个回答

8
使用路由快照获取像您展示的id查询参数应该给您一个字符串。如果您想将该字符串隐式转换为数字,以便在导航的路由参数中使用,您可以在变量前加上+
// (+) converts string 'id' to a number
let id = +this.route.snapshot.params['id'];

然后:

this.router.navigate(['/example', id]);

请查看以下示例,文档中介绍了如何获取查询参数: https://angular.io/guide/router#snapshot-the-no-observable-alternative


1
在组件中,您可以使用以下代码将字符串转换为数字:
 constructor(private route: ActivatedRoute) { }

  ngOnInit() {
    this.route.paramMap
      .subscribe((params: ParamMap) => {
        let id = +params.get('id'); // This line converts id from string into num
      });
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接