사용자가 등록 된 자격 증명을 사용하여 로그인 할 수있는 간단한 응용 프로그램을 만들었습니다.각도 2 사용자가 로그인했는지 여부에 따라 특정 구성 요소로 라우팅
"사용자"메뉴를 클릭 할 때 현재 로그인되어 있는지 여부에 따라 특정 구성 요소로 이동하도록 사용자에게 약간 더 직관적으로하고 싶습니다. ; 로그인 한 사용자
- 나는 다음이, 지금까지에 로그인 할 수 있습니다> 구성 -> 수 있습니다 구성 요소
로그 아웃 사용자가 로그 아웃
import { Component, OnInit } from "@angular/core";
import { AuthService } from "./auth/auth.service";
@Component({
selector: 'app-header',
template: `
<header class="row">
<nav class="col-md-8 col-md-offset-2">
<ul class="nav nav-pills nav-justified">
<li routerLinkActive="active"><a [routerLink]="['/authors']">Authors</a></li>
<li *ngIf="isLoggedIn" routerLinkActive="active"><a [routerLink]="['/user/logout']">User</a></li>
<li *ngIf="!isLoggedIn" routerLinkActive="active"><a [routerLink]="['/user']">User</a></li>
</ul>
</nav>
</header>
`
})
export class HeaderComponent implements OnInit {
constructor(private authService: AuthService){}
isLoggedIn: boolean
ngOnInit() {
this.isLoggedIn = this.authService.isSignedIn();
}
}
그러나, 단지 업데이트하지 않았습니다 내 서비스에 의해 채워집니다 값 isLoggedIn으로 페이지를 새로 고침에 작동하는 것 같다.
Angular2와 함께 평균 스택을 사용하여 가장 잘 수행 할 수있는 방법에 대한 제안은 크게 감사하겠습니다.
당신이 그것을 구조화, 당신이 누군가가 실제로 로그인 할 때'this.isLoggedIn'를 업데이트 할 필요가있는 방법은. 대신 작동합니다 ngOnInit의 ngOnChange로 이동 (그러나 것 어쩌면 경우 자주 불). –
나는 이것이 그러한 경우일지도 모른다라고 생각했다. 그런 행동을 구조화하는 더 좋은 방법이 있냐? –
적절한 방법은 Observable을 사용하여 상태가 무엇인지 확인하는 authService를 보는 것입니다. –