2017-05-25 82 views
0

比方说,在我的控制,我发出的事件:如何捕捉定制eventEmitter事件

@Output() somethingUpdated = new EventEmitter();

和方法:

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

鉴于我说:

(somethingUpdated)="somethingUpdated($event)"

在指令中我有:

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

但这不起作用。

我做错了什么?

+1

像'somethingUpdated'这样的东西不是您可以使用'@ HostListener'观看的文档上的事件。 – 2017-05-25 10:53:14

+0

从'EventEmitter'发出的事件不会冒泡 – yurzui

+0

@torazaburo怎么样呢? – brabertaser19

回答

0

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

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

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

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

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

具体来说,就是一节,“家长监听子女事件”

您使用有(绑定到一个文档事件)是,如果说有用的格式,你想要一个处理程序每次调整文档大小时都会触发。

+0

我需要一个带有组件的指令 的示例 - 全部清楚 – brabertaser19

+0

嗯......指令只是一个没有模板的组件(相反,您可以将组件指定为“模板指令”,尽管这样做并不实用)。我会认为这将是相同的故事。文档中的示例应该给你你需要的东西。 –