管理パネルにログインしているときに、ナビゲーション バーやフッターなどの特定のコンポーネントをメインのホームページから非表示にする必要があります。私の管理コンポーネントは、呼び出されたときに管理モジュールに基づいて遅延ロードされます。ルートが動的/admin/login
ではない場合、管理者ビューで必要なコンポーネントが期待どおりに非表示になります。 . 必要なコンポーネントで使用するルートの動的 ID を取得しています。以下は、メイン ページでアプリケーション ルートを読み取り、それに応じてコンポーネントを表示/非表示にするために使用している方法です。/admin/dashboard
/admin/category/:categoryId
/admin/user/:userId
ActivatedRoute
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;
}
})
}
Main.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>