2016-09-17 13 views
0

我一直在玩Angular 1個月,每次我都認爲使用發射和廣播在框架的不同部分之間進行通信是有意義的我發現文章指出如果可以的話我們應該避免它們(例如:http://seanhess.github.io/2013/10/14/angularjs-directive-design.html何時在Angular JS中使用發射和廣播?

到目前爲止,我把重點放在指導和控制器之間的通信,以及控制器和服務之間:

  • 指令< - >控制器:要呼叫控制器從指令的方法我用孤立的範圍和回調。在另一個方向上,我在控制器中使用狀態變量,這些狀態變量在指令中以及修改後的觸發指令的方法中被監視。

  • 控制器<→服務:相同的機制。我直接在我的控制器中使用服務的方法(這是服務的典型用法)以及服務中在控制器中監視的狀態變量。

我的問題很簡單:當發射和廣播相關時,你能給我一些例子和解釋嗎?

回答

0

當您需要從內部範圍向外部範圍發送消息或請求時,您可以使用$ emit,並且當您想從外部範圍向內部範圍執行相同的操作時,我們使用$ broadcast。

+0

我明白了這一點,我的問題是什麼時候使用消息傳遞系統而不是「直接通信」(使用上述回調和調用)? – Kowalsy

+0

僅當直接通信不可用時才使用,僅當函數處於範圍之外的相同範圍內時纔可以使用回調。 –