我已經實現了一個帶有AngularJS
的單頁應用程序。該頁面由中間的內容區域和圍繞中心組成的部分組成,顯示附加信息並提供操作中心的方法。AngularJS中的重型控制器通信
每個部分(稱爲Side Info
)和內容區域具有分配給它們的單獨AngularJS控制器。目前,我通過$rootScope.$broadcast
和$scope.$on()
進行通信,例如,
app.controller('PropertiesController', function ($scope, $rootScope) {
$scope.$on('somethingHappened', function(event, data){
// react
});
});
我再調用與其他控制器進行通信:
$rootScope.$broadcast('somethingHappened', data);
我有相當多的通信控制器之間發生的事情。特別是如果內容區域發生了什麼事情,則需要採用多個輔助信息元素。另一種方式也很常見:用戶提交表單(位於側面信息中)以及內容區域和其他側面信息元素必須採用。
我的問題: 有沒有更好的方法來處理SPA
重型控制器通信?
該代碼工作正常,但它已經變得有點混亂(例如,很難找到哪些事件處理等)。由於該應用程序在未來幾周可能會增長很多,因此我希望儘快完成這些更改(如果有更好的解決方案)。
我正在做我的第一個Angular項目,其中包括創建一個頁面APP。我在模板中創建模板,並將指令中的所有作用域處理成一個數組。然後我可以捕捉並修改這些。不知道這是否是一種好方法,或者它是否可以幫助你。 – nada 2015-02-05 15:40:44
使用共享服務是另一種溝通方式 – 2015-02-05 15:42:29
通常,您可以將共享內容放入上級PagesController。所以你可以通過示波器輕鬆訪問它們。有時候,你可以添加一些將共享狀態變量的服務。 – dubadub 2015-02-05 15:43:35