2016-12-12 2 views
2

각도 2를 사용하여 인증을 처리하는 AuthService가 있습니다. 사용자가 로그인/로그 아웃했을 때 다른 구성 요소에 알리는 가장 좋은 방법을 알아 내려고하지만이 시나리오를 처리하는 올바른 방법이 확실하지 않습니다. 어떤 제안? 감사!알림 서비스의 각도 2 변경 구성 요소

+0

는 관찰 또는 약속을 반환하는 방법이 있나요? – toskv

답변

3

가장 좋은 방법은 BehaviorSubject입니다. 구성 요소에서

class AuthService { 

private _isLoggedIn:Subject<boolean> = new BehaviorSubject<boolean>(false); 

    getUser() { 
     return !!localStorage.getItem('user');  
    }; 

    isLoggedIn() { 
    this.getUser() && this._isLoggedIn.next(true); 
    !this.getUser() && this._isLoggedIn.next(false); 
    return this._isLoggedIn.asObservable(); 
    } 
} 

//

class NavComponent { 
    constructor(private AuthService: AuthService) { 
     this.AuthService.isLoggedIn().subscribe(status => this.isLoggedIn = status); 
    } 
} 
+1

'isLoggedIn'의 정의가 중복되었습니다. – yuxhuang

+0

하나는 컴포넌트이고 하나는 서비스입니다. – Bazinga

+1

'isLoggedIn'은'AuthService'의 필드와 메소드입니다. – yuxhuang