如何在Angular中获取当前路线的模块

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

我正在研究一个简单的组件,该组件将根据当前路线的模块更改数据。我不确定在哪里可以找到有关该模块的信息。

路由器

const routes: Routes = [
    {
        path: '', 
        loadChildren: () => import('@/app/homepage/homepage.module').then(m => m.HomepageModule)
    },
    {
        path: 'search', 
        loadChildren: () => import('@/app/search/search.module').then(m => m.SearchModule)
    }
];

AppComponent(root)

<div *ngIf="isHomepageModule; else otherModules">...</div>
<ng-template #otherModules>
    <div>...</div>
</ng-template>
<router-outlet></router-outlet>
constructor(private route: ActivatedRoute) {}

get isHomepageModule() {
    // This would be the ideal situation... 
    // Unfortunately, I cannot find any information about the module here
    return this.route.snapshot.module instanceof HomepageModule;
}

是否可以访问模块信息?我更喜欢进行类型检查或模块名称比较,而不是仅仅对当前URL进行一些正则表达式匹配来“强行”检查。预先谢谢你。

angular angular-routing angular-router angular8
1个回答
0
投票

我最终改变了最初的想法,并根据路线的data属性比较了路线/模块。另外,我创建了AppService来跟踪当前路线。这很有用,因为路径的树遍历可能是昂贵的逻辑,最好不要重复。

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