在app.component.html中:
在app.component.ts中:export class AppComponent {
constructor(private HeaderService: HeaderService, private AuthService: AuthService) { }
get loggedIn(): boolean { return this.AuthService.getUserState(); }
get showHeader(): boolean { return this.HeaderService.getToggleState(); }
}
在header.service.ts中:
@Injectable({
providedIn: 'root'
})
export class HeaderService {
showHeader = true;
constructor() { }
setToggleState(state: boolean) {
this.showHeader = state;
}
getToggleState() { return this.showHeader; }
}
现在,在login.component中,header应该是不可见的。
现在的问题是,有一个短暂的闪烁(发生登录,然后注销,并返回到登录页面),ExpressionChangedAfterItHasBeenCheckedError)。
最好的方法是什么?我应该默认将showHeader设置为false?
login.component.tsexport class LoginComponent implements OnInit {
ngOnInit() {
// To hide the header
this.HeaderService.setToggleState(false);
}
}