首頁 > web前端 > js教程 > 主體

Angularjs的Controller間通訊機制實例分析

高洛峰
發布: 2016-12-07 14:29:12
原創
994 人瀏覽過

本文實例講述了Angularjs的Controller間通訊機制。分享給大家供大家參考,具體如下:

在Angularjs開發一些經驗總結中提到我們需要按照業務區分angular controller,避免過大無所不能的上帝controller,我們把controller分離開了,但是有時候我們需要在controller中通信,一般為比較簡單的通信機制,告訴同伴controller我的某個你所關心的東西改變了,怎麼辦?如果你是一個javascript程式設計師你會很自然的想到非同步回呼響應式通訊—事件機制(或訊息機制)。對,這就是angularjs解決controller之間通訊的機制,所推薦的唯一方式,簡而言之這就是angular way。

Angularjs為在scope中為我們提供了冒泡和隧道機制,$broadcast會把事件廣播給所有子controller,而$emit則會將事件冒泡傳遞給父controller,$on則是angularjs的事件註冊函數,有了這一些我們就能很快的以angularjs的方式去解決angularjs controller之間的通信,代碼如下:

View:

<div ng-app="app" ng-controller="parentCtr">
  <div ng-controller="childCtr1">name :
    <input ng-model="name" type="text" ng-change="change(name);" />
  </div>
  <div ng-controller="childCtr2">Ctr1 name:
    <input ng-model="ctr1Name" />
  </div>
</div>
登入後複製

   

Controller:c的name改變會以冒泡傳遞給父controller,而父controller會對事件包裝在廣播給所有子controller,而childCtr2則註冊了change事件,並改變自己。注意父controller在廣播時候一定要改變事件name。

jsfiddle連結:http://jsfiddle.net/whitewolf/5JBA7/15/

希望本文所述對大家AngularJS程式設計有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!