延迟加载获取当前路由模块

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

我试图排除一个组件,如果某个模块已在延迟加载应用程序中路由。

例如,在我的AppComponent中,我使用的是路由器插座和组件上方:

<div>
    <my-component></my-component>   --> don't show if module is StartModule
    <router-outlet></router-outlet>
</div>

我的路由配置如下所示:

export const routes: Routes = [
  {
    path: 'start',
    loadChildren: './start/start.module#StartModule',
  },
  {
    path: 'first',
    loadChildren: './first/first.module#FirstModule'
  },
  {
    path: 'second',
    loadChildren: './second/second.module#SecondModule'
  }
];

是否有一个参数来接收路由模块以进行检查

isStartModule(): boolean {
    if (routedModule == StartModule) {
        return true; 
    }
}

<my-component *ngIf="!isStartModule()"></my-component>

?

angular typescript lazy-loading
2个回答
1
投票
constructor(private router: Router ) {}

试着检查一下

this.router.url === '/start' 

然后做点什么


  1. 您可以订阅活动 qazxsw poi

0
投票

您可以在app-component中设置路由更改侦听器,如下所示:

 this.router.events.pipe(
    filter((event) => event instanceof NavigationEnd))
    .subscribe(x => {
        console.log('THIS IS FOR TEST', x['url']);
        }
    );
© www.soinside.com 2019 - 2024. All rights reserved.