如果某个模块已在延迟加载应用程序中路由,我将尝试排除某个组件。
例如,在我的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>
?
答案 0 :(得分:1)
constructor(private router: Router ) {}
尝试检查
this.router.url === '/start'
然后做点事情
您可以订阅事件
this.router.events.pipe(
filter((event) => event instanceof NavigationEnd))
.subscribe(x => {
console.log('THIS IS FOR TEST', x['url']);
}
);
答案 1 :(得分:0)
您可以像这样在应用程序组件中设置路线更改侦听器:
import { Router, NavigationEnd } from '@angular/router';
import { filter } from 'rxjs/operators';
constructor(private router: Router)
{
router.events.pipe(
filter(event => event instanceof NavigationEnd) ).subscribe((event: NavigationEnd) => {
console.log(event.url);
if(event.url == 'start'){
// do you stuff
}
});}