如何捕获自定义eventEmitter事件

时间:2017-05-25 10:46:18

标签: javascript angular typescript events

让我们在我的控制器中说我发了一个事件:

@Output() somethingUpdated = new EventEmitter();

并在方法中:

***
this.somethingUpdated.emit();
***

在视图中我添加了:

(somethingUpdated)="somethingUpdated($event)"

在指令中我有:

  @HostListener('somethingUpdated', ['$event'])
  somethingUpdated() {
    console.log('somethingUpdated');
  }

但这不起作用。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您将该处理程序绑定到文档上的事件。但这不是你想要的,你希望处理程序从你定义的输出源接收事件。

(输出源是发出事件btw的东西)。

在Angular(2+)中使用输出的任何示例都将指向正确的方向。

这是文档,查看,你会看到。

https://angular.io/docs/ts/latest/cookbook/component-communication.html

具体来说,查找部分,"父级侦听子事件"

您在那里使用的格式(绑定到doc事件)将非常有用,例如,您希望每次调整文档大小时都要触发处理程序。