2017-09-01 74 views
2
  1. EventEmitter是RxJS Observable嗎?
  2. 在角度文檔中,它解釋瞭如何使用EventEmitter從 子級與父組件進行通信。我們是否應該在組件中使用 EventEmitter,或者它也可以使用角度服務 也?
  3. 在角度文檔中,它解釋了父母和孩子如何通過使用 observables RxJS主題的​​共享服務進行通信。我們可以使用EventEmitter而不是RxJS 這個MissionService示例中的Subject?如果我們可以在服務中使用EventEmitter,請幫助將此示例與EventEmitter進行轉換。我是新來的角。EventEmitter或RxJS角度服務對象

    https://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service

我很困惑閱讀這些相關帖子後位:​​

+0

[Angular 2事件發射器vs主題]的可能重複(https://stackoverflow.com/questions/40238549/angular-2-event-emitters-vs-subject) – estus

回答

0

有許多不同的方法來處理事件的場景的。

EventEmitter是將子事件傳遞給父母的最常見方式。假設你創建了一個子組件,並點擊一個按鈕那裏,你可能希望在父點擊事件:

<button (click)="clickEmitter.emit()">button</button>

<child-component (clickEmitter)="buttonClicked()"></child-component> 

共享服務(注射),可以用來存儲多個組件的數據。

Subject和BehaviorSubject可用於在組件之間共享事件(有時通過共享服務)。例如:我用一個authService和一個用戶BehaviorSubject來獲取每個組件中登錄的用戶對象。

這些只是許多其他用例中的一些簡單示例。