Проблема: я создаю мультиязычный веб-сайт, так что :l/what/ever/else/here
- это шаблон для каждого возможного URL, где :l
означает «язык».
Очевидно, я должен изменитьперенаправленные ссылки на основе текущего значения параметра :l
.Включая раздел навигации, который вызывает ужасную головную боль;рассмотрим следующий код:
<router-outlet name="navbar"></router-outlet>
<br />
<div class="container">
<router-outlet></router-outlet>
</div>
Затем упрощенная версия маршрутизации:
const routes: Routes = [
{ path: '', outlet: 'navbar', component: AppNavComponent },
{
redirectTo: '/ru/mission',
pathMatch: 'full'
},
{
path: ':l/mission',
component: AppMissionComponent
}
]; path: '',
redirectTo: '/ru/mission',
pathMatch: 'full'
},
{
path: ':l/mission',
component: AppMissionComponent
}
];
Идея довольно проста: я хотел бы выделить router-outlet
, выделенный для навигации иотделены для остального содержимого.
Проблема в том, что ActivatedRoute
, введенный в AppNavComponent
, пуст.Там нет параметра :l
.Я пробовал .parent
вместе с .root
- ни один не работает.Я пробовал ActivatedRouterSnapshoot
- тоже ничего не получается.
Резюме: мне нужно изменить перенаправленные ссылки в моей навигации на основе текущего значения параметра :l
.Как я могу прочитать значение :l
из ActivatedRoute
, введенного во вспомогательный компонент?