2014-09-26 26 views
1

我一直在我的應用程序中使用$ broadcast,我現在正在做一些優化,我想知道是否應該繼續使用$ scope。$ broadcast(或$ emit)作爲我的內部服務和inter - 定向通信或開關定製消息總線。

問題是,我一直在很多服務中苦苦掙扎$ rootScope,除了偵聽範圍事件之外,它與它沒有任何關係。

+0

這一切都太容易被衝昏頭腦優化事情是沒有問題的。您是否對應用程序進行了剖析,以查看時間花在何處? – 2014-09-26 07:28:46

+0

你說得對。雖然目前,我對範圍事件的使用很少,並且受用戶操作(表單提交,導航等)的驅動,我可能不想在這種情況下花費時間進行優化。問題仍然存在。另外我想使用一些不涉及使用$ rootScope的地方,它只用於事件監聽/廣播。 – Bogdan 2014-09-26 07:42:01

回答

1

更喜歡$發射比$廣播beacuse第一個更快。

使用服務,您可以改爲事件以在控制器之間共享數據。

看看popstaljs,我在我的上一個應用程序中使用這個庫並且工作得很好(http://jonathancreamer.com/an-angular-event-bus-with-postal-js/)。

有很多的職位約$廣播VS $發出的,像What's the correct way to communicate between controllers in AngularJS?

+0

我認爲他們修正了$ broadcast並沒有將其擴散到所有的作用域中(另外,我需要它從$ rootScope傳遞給後代),我會看看postaljs,看看我可以如何使用它。謝謝 – Bogdan 2014-09-26 07:10:30

+2

AFAIK,[$ emit](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$emit)和[$ broadcast](https://docs.angularjs.org/api /ng/type/$rootScope.Scope#$broadcast)不用於同樣的目的,因爲$ emit會向上發送一個事件,而$ broadcast會向下發送一個事件... – sp00m 2014-09-26 07:11:06

+0

您是對的,無論如何嘗試它並讓我知道 – originof 2014-09-26 07:11:41

相關問題