2017-09-01 58 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来获取每个组件中登录的用户对象。

这些只是许多其他用例中的一些简单示例。