2017-02-16 3 views
4

저는 Angular2를 처음 사용하고 있습니다. 알고 싶다면 _showNavBar 또는 showNavBarEmitter에 모두 가입하면 (아래 코드 참조) 사용할 수 있습니다. 어떤 차이가 있습니까?관찰 가능 대 asObservable()?

public _showNavBar: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(null); 
public showNavBarEmitter: Observable<boolean> = this._showNavBar.asObservable(); 

답변

5

asObservable은 구독자가 액세스 할 수 없게 만듭니다. 이렇게하면 구독 할 수있는 사람과 값을 낼 수있는 사람을 제한 할 수 있습니다.

이 내용을 적용하려면 _showNavBarprivate을 작성해야합니다.

+0

고마워, 그게 아주 유용하지만 위의 코드가 주사 가능한 별도의 클래스에 있다는 것은 의심의 여지가있다. _showNavBar를 private으로 설정하면 다른 클래스 (이 클래스를 가져온 곳)에서 값을 내보낼 수 없습니다. – vikas

+0

'addEvent() {this._showNavBar.next ('someValue');}와 같은 메소드를 추가 할 수 있습니다. }'. 그러나 당신이 그것을 원하거나 필요로하지 않는다면, 당신은 아마도 as observable을 필요로하지 않을 것입니다. 항상이 방법을 사용하는 것이 좋은 습관이라고 생각합니다. –

관련 문제