可变参数的角度路线导航

时间:2018-11-30 22:27:54

标签: angular

我的app.module.ts中有一些路线:

 {path: 'infos/:lang', loadChildren: './base-infos/base-infos.module#BaseInfosModule' },
  {path: '', redirectTo: 'infos/fr', pathMatch: 'full' }

然后我打电话给我代码中的第一条路线:

this._router.navigate(['infos/', this.currentLang ])

如果我选择英语,那么“ this.currentLang”等于URL“ infos / en”中的“ en”。问题是,即使我选择“ en”,它也总是导致我进入“ infos / fr”而不是“ infos / en”。

我的代码是否有理由这样做? 谢谢

2 个答案:

答案 0 :(得分:2)

首先尝试将path: ''放置在另一条路线上方的路线,

{path: '', redirectTo: 'infos/fr', pathMatch: 'full' }, 
{path: 'infos/:lang', loadChildren: './base-infos/base-infos.module#BaseInfosModule' }

或也尝试使用此router.navigate函数:

this._router.navigate([`infos/${ this.currentLang }`]);

或者您也可以不使用/符号来尝试它:

this._router.navigate(['infos', this.currentLang ]);

答案 1 :(得分:1)

在导航调用中无需尾随“ /”。尝试以下行

this._router.navigate(['infos', this.currentLang ])