Angular 路由参数在中间

Angular Routing param in the middle

在我的路由模块上,我有一条路径,中间有一些 id。像

 {
    path: 'detail/:id/new',
    component: SomeComponent
 }

为了给它一个link,我管理了两个解决方案来调用它。

解决方案一:

this.router.navigate(['detail/:id/new', { id: this.myId }]);

Generated URL: http://localhost:4200/myApp/detail/:id/new;id=10

方案二:

this.router.navigate(['detail/' + this.myId +'/new']);

Generated URL: http://localhost:4200/myApp/detail/10/new

对我来说,第二个 solution/URL 更标准、更清晰,但实现它的方式似乎有点“硬编码”。

还有其他方法可以完成解决方案2吗?有什么angular标准?

我认为最不“硬编码”的选项如下所示:

this.router.navigate(['detail' , this.myId, 'new']);

您也可以尝试 javascript 模板字符串(使用 ` 而不是 ')

this.router.navigate([`detail/${this.myId}/new`]);