使Angular 2路由器免于错误文字的参数

时间:2017-08-24 16:44:49

标签: javascript angular router

我有两条路线:

{
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;签名中匹配?

2 个答案:

答案 0 :(得分:3)

交换位置,将参数设置为下一个,一切都可以正常工作

{
path: 'application/:groupId/applicant-detail/:applicant-id',
component: BarComponent  
},
{
path: 'application/:groupId/:approved/:applicant-id',
component: FooComponent  
}

答案 1 :(得分:1)

路由器配置的顺序很重要。

交换您的声明,使您的大多数文字路径都是第一个。