2016-08-11 7 views
2

언제 어떻게 사용합니까? Subject는 EventEmitter와 같습니다.Angular2의 RxJs 및 EventEmitter의 제목

어떻게 다시 작성하고 싶습니까?

import { Injectable} from '@angular/core'; 
import { Subject,BehaviorSubject } from 'rxjs'; 
import {Playlists} from 'channel' /** Assumes this is where you have defined your Playlists interface **/ 

@Injectable() 
export class PlaylistService { 
    private _currentPlaylists$: Subject<Playlists> = new BehaviorSubject<Playlists>(null); 
    constructor() {} 

    currentPlaylists() { 
     return this._currentPlaylists$.asObservable(); 
    } 

    setCurrentPlaylists(playlists:Playlists){ 
     this._currentPlaylists$.next(playlists); 
    } 
} 
+0

적절한 사용을 위해 http://stackoverflow.com/questions/36076700/what-is-the-proper-use-of-an-eventemitter를 참조하십시오 EventEmitter의 –

답변

4
Output 장식과 Angular2 구성 요소에서 사용자 정의 이벤트를 구현할 때

EventEmitter들에만 사용해야합니다 : 다른 경우

@Output() 
someEvent: EventEmitter = new EventEmitter(); 

, 당신은 (Rxjs에서) Subject의를 사용할 수 있습니다 그것은 관련이없는 것 때문에 Angular2 특정 기능.

EventEmitter은 내부적으로 Subject을 확장합니다. https://github.com/angular/angular/blob/master/modules/%40angular/facade/src/async.ts#L63

귀하의 코드가 나에게 좋아 보인다 ;-)