我试图仅在应用程序的“内部页面”中显示导航栏,而不在登录/注册页面中显示。
我在navigation
上创建了一个单独的组件,并在app.component.html
中显示了它
<app-navbar *ngIf="navVisible"></app-navbar>
<div class="container">
<router-outlet></router-outlet>
</div>
我认为,如果我使用*ngIf=navVisible
,它会起作用,但不会。
ngOnInit(): void {
this.navVisible = this.authsrv.showNav();
}
showNav(): boolean {
let path = window.location.pathname;
let page = path.split("/").pop();
if ((page.trim() === "login") || (page.trim() === "registration") || (page.trim() === "")) {
return false;
}
else
return true;
}
但是当我从登录名转到内页时,它不起作用。
我在navbar.component.html & navbar.component.ts
中尝试了相同的方法
有人可以告诉我这是怎么回事吗?
答案 0 :(得分:0)
在加载AppComponent(nanVisible
)时设置ngOnInit
的值,仅在启动应用程序时设置一次。
您可以通过在路线更改时进行更新来解决该问题:
constructor(private router: Router) {
router.events.subscribe((event) => {
if (event instanceof NavigationEnd) {
this.navVisible = this.authsrv.showNav();
}
});
}
我想您要做的是将当前路由发送到您的showNav
方法。