Angular-Cli中EventEmitter与输出装饰器之间的区别

时间:2017-11-06 13:18:31

标签: angular typescript angular-cli angular-decorator

为什么 EventEmitter 输出装饰器需要一起使用? 我看不出两者之间的区别,

如果要求它们一起使用,为什么不只是一个装饰器发出以及绑定到选择器,无论它在哪里使用!

感谢任何解释!

谢谢

2 个答案:

答案 0 :(得分:3)

EventEmitter只是Subject

@Output()是将该字段标记为Angular事件绑定的输出。

我没有在Angular TS中尝试过,但在Angular Dart中,可以使用Stream(相当于Subject)而不是EventEmitter。 在最近的版本{D} Angular中完全删除了EventEmitter。 也许这也适用于Angular TS。

有计划以可能与EventEmitter不兼容的方式扩展Subject的API,因此创建了自定义类。
但没有迹象表明这实际上会发生。

答案 1 :(得分:0)

EventEmitter 允许您从此活动中创建自定义事件 emit 并订阅此事件,并对其做出反应。

@Output()允许您将这些事件传播到父组件:

child.Component.ts

  @Output() myEvent: EventEmitter<string> = new EventEmitter<string>();

parent.component.ts

<app-child-component (myEvent)="reactToChildEvent($event)"></app-child-component>

编辑:

您可以单独使用EventEmitter,而不是@Ouput(),从服务向所有订阅的组件或同一组件内部发送。