По сути, я намереваюсь вызвать функцию в том же компоненте Angular
(v 9.1) с параметром route для маршрутов типа host/:route
.
У меня есть следующий маршрут в app-routing.module.ts
:
const routes: Routes = [
{ path: ':route', component: AppComponent }
];
также перезагрузка поведение для навигации по тому же URL:
@NgModule({
imports: [RouterModule.forRoot(routes,
{
onSameUrlNavigation: 'reload'
})],
exports: [RouterModule]
})
и вот как я подписываюсь на события маршрутизации в ngOnInit
:
this.router.events.subscribe((event: Event) => {
if (event instanceof NavigationEnd) {
let route = this.route;
while (route.firstChild) {
route = route.firstChild;
}
if (!this.routeMappginInitialized) {
route.params.subscribe(param => {
if (param.route !== undefined) {
this.mapRouteToNavigation(param.route);
}
});
this.routeMappginInitialized = true;
}
}
});
На самом деле это работает, но мне интересно, является ли это лучшим решением, хотя большинство веб-фреймворков, с которыми я работал, облегчали доступ к / отображали параметры маршрута.
Я также пытался:
this.route.snapshot.paramMap.get('route');
, но всегда возвращает undefined .