我有一個搜索控制器,用戶可以在其中搜索單個區域。 搜索完區域後,I $ rootScope。$廣播該區域已更改。
我有各種其他控制器負責獨立加載和顯示有關該區域的數據。他們使用$ rootScope。$ on,並使用$ http從其他來源獲取額外信息。
我的方法是做事的正常方式嗎?這感覺很不尋常,因爲$廣播在我經歷的教程中沒有提及。
我想學習角度。
我有一個搜索控制器,用戶可以在其中搜索單個區域。 搜索完區域後,I $ rootScope。$廣播該區域已更改。
我有各種其他控制器負責獨立加載和顯示有關該區域的數據。他們使用$ rootScope。$ on,並使用$ http從其他來源獲取額外信息。
我的方法是做事的正常方式嗎?這感覺很不尋常,因爲$廣播在我經歷的教程中沒有提及。
我想學習角度。
$ emit/$ broadcast在角度庫甚至第三方中使用很多。
比如導航時使用NG路由模塊,$ routeChangeStart,$ routeChangeSuccess,你有事件...這同樣適用於第三方UI的路由器:$ stateChangeStart,$ stateChangeSuccess,....
這只是一個事件總線:監聽和發送事件以便與外部組件進行通信。
在angularJS中,您可以在文檔的事件部分找到它們。
但是,您應該小心處理事件,它們中的太多可能導致您對代碼正在執行的操作失去控制權,或者無法確定應該顯示的應用程序的當前狀態。
對於一些人來說,更簡潔的方法是在$ rootScope/a服務中使用$ watch來存儲數據。
編輯:我沒有提到它,但存儲數據在$ rootScope不建議設計/ reusability.isoltion的目的。
我敢打賭,他們在很多其他教程中都提到過,'$ broadcast'是API的一部分 – svarog
當然有很多教程。我所看到的大多數是產品/項目頁面。我的問題含糊不清,但我不知道從哪裏開始尋找。其他人也問過類似的問題,關於控制器之間的溝通,我只是覺得我錯過了一些東西。 – zod