여기에 문제가 있습니다 :각도 4 : 사용자 상태에 조건부 표시
사용자 로그인 상태에 따라 현재 응용 프로그램에서 일부 조건부 표시를 만들기 위해이 작은 자습서를 따르려고합니다.
https://loiane.com/2017/08/angular-hide-navbar-login-page/
그것은 효율적 & 아주 간단 보인다 : 여기에 링크입니다. 그러나 현재 응용 프로그램 내에서 작동시키지 못합니다.
최고 menu.component.ts :
authStatus: Observable<boolean>;
constructor(private authService: AuthService){
}
ngOnInit(){
this.authStatus = this.authService.isLoggedIn();
}
login(){
this.authService.login();
}
logout(){
this.authService.logout();
}
최고 menu.component.html :
<li><span (click)="login()">LOGIN</span></li>
<li><span (click)="logout()">LOGOUT</span></li>
//...
<li *ngIf="authStatus | async"><a [routerLink]="['/login']">CONDITIONAL LOGIN</a></li>
<li *ngIf="!authStatus | async"><a [routerLink]="['/logout']">CONDITIONAL LOGOUT</a></li>
주요 튜토리얼 가이드 라인에 따라,이 코드에 와서 auth.service.ts :
public loggedIn = new BehaviorSubject<boolean>(false);
get isLoggedIn(){
return this.loggedIn.asObservable();
}
login(){
this.loggedIn.next(true);
}
logout(){
this.loggedIn.next(false);
}
아무도 내가 잘못한 것을 설명 할 수 있습니까? ...? 나는
왜 this.authStatus를 컨스트럭터, oninit에 할당할까요? –
튜토리얼의 일부가 아니었던 "구독 부분"이 맞지 않습니다. 내 의견은 맞습니다.이 줄은 삭제합니다. . 그러나 이것은 문제를 해결하지 못합니다 .... – Julo0sS
'ngOnInit'의 생성자 ..remove에서 구독을 제거하지 마십시오 – Rahul