我有一个带有主容器组件和侧栏的Angular应用程序。父组件包含两者。主容器也是其余组件的唯一路由器输出。
侧边栏模板在sessionStorage
中查找特定密钥,如果密钥不在那里,它会从DOM中删除自己。我正在使用ngOnInit
检查sessionStorage
和*ngIf
来显示/隐藏组件。
如果密钥不在sessionStorage
中,则侧边栏会隐藏自身并且用户被重定向到/login
,哪个组件显示在主容器组件上。当用户成功登录时,密钥在sessionStorage
中设置,用户被重定向到'/'
(在主容器上为登录用户加载初始屏幕),但侧边栏保持不变隐藏/移除。
如何让侧边栏再次显示?我是否需要触发事件,和/或通过父组件动态再次添加组件?
谢谢。
答案 0 :(得分:1)
在app.component.ts中,您可以订阅路由器事件来执行此操作,例如。
import { OnInit } from '@angular/core';
import { Router } from '@angular/router';
export class AppComponent implements OnInit {
constructor(private router: Router) { }
ngOnInit(): void {
this.router.events.subscribe(() => {
this.showSidebar = // check if it exists
});
}
}