這篇文章主要介紹了angular控制器通信的4種方式有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)專注于祿勸網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供祿勸營銷型網(wǎng)站建設(shè),祿勸網(wǎng)站制作、祿勸網(wǎng)頁設(shè)計、祿勸網(wǎng)站官網(wǎng)定制、小程序設(shè)計服務(wù),打造祿勸網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供祿勸網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
首先概括一下angular控制器通信的4種方式:
作用域繼承。
通過$scope廣播事件。
事件發(fā)射器模塊。
服務(wù)。
1、作用域的繼承
子作用域可以訪問聲明在它們的祖先作用域中的變量和函數(shù)。
m.controller('Controller1', function ($scope) { $scope.answer = 42; }); m.controller('Controller2', function ($scope) { console.log($scope.answer); });this prints '42':{{answer}}
2、通過$scope廣播事件
$emit調(diào)用可以向作用域上方冒泡,$broadcast將向子孫作用域傳播,$on可以注冊監(jiān)聽器。
m.controller('Controller1', function ($scope) { $scope.$on('ping', function (){ console.log('pong'); }); $scope.$broadcast('broadcast'); }); m.controller('Controller2', function ($scope) { $scope.$emit('ping'); $scope.$on('broadcast', function (){ console.log('broadcast'); }); });
3、事件發(fā)射器模塊event-emitter
event-emitter模塊工作方式類似于作用域發(fā)射器,它們有3個關(guān)鍵的區(qū)別:
event-emitter是獨立于作用域的,所以在無法訪問作用域的服務(wù)中使用它是非常理想的。
將使用的函數(shù)被命名為.on(),.emit()。
沒有對應(yīng)的$broadcast()函數(shù)。
4、最常用的通信是服務(wù)
因為服務(wù)是單例,所以在任何組件內(nèi)改變服務(wù)的值都將影響其他組件,用法很簡單,只要把服務(wù)列為依賴就可以了,如以上代碼所示。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“angular控制器通信的4種方式有哪些”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!