我在發送和捕獲Angular中的事件時遇到了一些麻煩。如何捕獲由Angular中的指令引發的控制器中的事件?
考慮這個plunker:Plunk..
正如你可以看到我有兩個控制器和指令。控制器1中的指令'lives'。當指令中發生某些事情時,我想在控制器2中捕獲這個事件。正如你在plunk中看到的那樣,沒有任何東西被記錄到控制檯。該事件沒有捕捉到。
我也試過使用服務。在這種情況下,我在服務上創建了一個方法,當調用這個方法時,我拋出了這個事件。就像在普拉克中,我在控制器2中聽到這個事件,但這也沒有奏效。
凡一切都歸結爲是我想要調用一個方法的另一個控制器上..
感謝您的回覆。如果我理解你是正確的,你建議在服務器的變量/屬性上在控制器2上創建一個$ watch? – Martijn
@Martijn,只有在檢測到變化時(以及初次初始化時)纔會觸發$ watch。這可能適用於您的場景,但它可能不適用。如果在控制器2創建之前事件已經觸發,那麼只需調用服務上的一個方法,作爲控制器2初始化的一部分,以確定事件是否發生。如果事件可能在控制器2存在的情況下發生,那麼也可以使用$ watch。 –
在我的場景中,當事件被觸發時,我不認爲控制器2存在。所以你建議「簡單地調用服務上的一個方法,作爲控制器2初始化的一部分,以確定事件是否發生。我不確切地知道你的意思。你能解釋一點嗎? – Martijn