我的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”。
我的代码是否有理由这样做? 谢谢
答案 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 ])