在相同组件内解析角度路线的更好方法

问题描述 投票:0回答:1

基本上,我的意图是在与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 ...

angular typescript angular2-routing
1个回答
0
投票

AppComponent是自举组件,因此您不应尝试通过路由加载它。解决此设计问题,它应该可以工作,代码中没有其他错误。

© www.soinside.com 2019 - 2024. All rights reserved.