当我登录到我的管理面板时,我需要从我的主页中隐藏某些组件,例如导航栏和页脚。我的管理组件在调用时基于管理模块延迟加载。如果路由不是动态的,即 like 等,则在管理视图中必要的组件会按预期隐藏/admin/login
。/admin/dashboard
但是如果路由是动态的,/admin/category/:categoryId
或者/admin/user/:userId
在这些路由中,导航栏和页脚等必要组件不会隐藏自己. 我正在获取ActivatedRoute
在必要组件中使用的路由的动态 ID。下面是我在主页上用来读取应用程序路由并相应地显示/隐藏组件的方法。
Main.ts
import { Router, NavigationEnd } from '@angular/router';
public url: any;
constructor(private router: Router) {
this.router.events.subscribe((event) => {
if (event instanceof NavigationEnd) {
this.url = event.url;
}
})
}
主.html
<div class="main__container">
<app-navbar
*ngIf="url !== '/admin' && url !== '/admin/dashboard' && url !== '/admin/post-article' && url !== '/admin/video' && url !== '/admin/login' && url !== '/admin/sign-up' && url !== '/admin/category/:categoryId'">
</app-navbar>
<app-footer
*ngIf="url !== '/admin' && url !== '/admin/dashboard' && url !== '/admin/category/:categoryId' && url !== '/admin/post-article' && url !== '/admin/video' && url !== '/admin/login' && url !== '/admin/sign-up'">
</app-footer>
</div>