簡體   English   中英

Angular2中的RxJs和EventEmitter中的主題

[英]Subject in RxJs and EventEmitter in Angular2

它們之間有什么區別,何時以及如何使用它們? 我讀到Subject等同於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);
    }
}

EventEmitter實現與Angular2組件自定義事件,當s只應該用於Output裝飾:

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

在其他情況下,您可以使用Subject (來自Rxjs),因為它與Angular2特定功能無關。

EventEmitter內部擴展了Subject 請參閱https://github.com/angular/angular/blob/master/modules/%40angular/facade/src/async.ts#L63

你的代碼對我來說很好;-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM