基本上,我的意图是在与Angular
之类的路由相同的host/:route
(v 9.1)组件内调用一个函数,]
我在app-routing.module.ts
中有以下路线:
相同网址导航的行为:const routes: Routes = [ { path: ':route', component: AppComponent } ];
同样reload
@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; } } });
这确实有效,但是我想知道这是否是最好的解决方案,尽管我使用的大多数Web框架都使访问/映射路由参数变得容易。
我也尝试过:
。this.route.snapshot.paramMap.get('route');
但它总是返回undefined
基本上,我的意图是在与route参数相同的Angular(v 9.1)组件中调用函数,用于诸如host /:route之类的路由。我在app-routing.module.ts中有以下路由:const ...
AppComponent
是自举组件,因此您不应尝试通过路由加载它。解决此设计问题,它应该可以工作,代码中没有其他错误。