2017-05-25 72 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

嗯......指令只是一個沒有模板的組件(相反,您可以將組件指定爲「模板指令」,儘管這樣做並不實用)。我會認爲這將是相同的故事。文檔中的示例應該給你你需要的東西。 –