我有两条路线:
{
path: 'application/:groupId/:approved/:applicant-id',
component: FooComponent
},
{
path: 'application/:groupId/applicant-detail/:applicant-id',
component: BarComponent
},
不同之处在于,第一个:approved
是一个参数,而第二个applicant-detail
是一个文字。当然,路由器认为:
this.router.navigate(['./applicant-detail/' + this.someId, { relativeTo: this.route });
希望转到第一条路线,因为它没有意识到applicant-detail
是一个文字。有没有什么方法可以解决这个问题,除了重新编写路线,这样他们就不会在#39;签名中匹配?
答案 0 :(得分:3)
交换位置,将参数设置为下一个,一切都可以正常工作
{
path: 'application/:groupId/applicant-detail/:applicant-id',
component: BarComponent
},
{
path: 'application/:groupId/:approved/:applicant-id',
component: FooComponent
}
答案 1 :(得分:1)
路由器配置的顺序很重要。
交换您的声明,使您的大多数文字路径都是第一个。