第五章-控制器

控制器在AngularJS中的做用是加強視圖,用來向視圖的做用域中添加額外的功能。咱們用它來給做用域對象設置初始狀態,並添加自定義行爲。當咱們在頁面上建立一個新的控制器時,AngularJs會生成並傳遞一個新的$scope給這個控制器。能夠在這個控制器裏初始化$scope,因爲AngularJs會負責處理控制器的實例化過程,咱們只需編寫構造函數便可。 app

 

控制器能夠將與一個獨立視圖相關的業務邏輯封裝在一個獨立的容器中,儘量地精簡控制器是很好的作法。 框架

 

AngularJS同其餘Javascript框架最主要的一個區別是,控制器並不適合用來執行DOM操做,格式化或數據操做,以及除存儲數據模型以外的狀態維護操做。它只是視圖和$scope之間的橋樑。 函數

 

AngularJS經過做用域將視圖,控制器和指令隔離開來,這樣就很容易爲功能的具體部分編寫測試。 測試

 

控制器嵌套(做用域包含做用域) spa

AnjularJS應用的任何一個部分,不管它渲染在哪一個上下文中,都有父級做用域存在,對於ng-app所處的層級來說,它的父級做用域就是$rootScope。 設計

 
 

除了孤立做用域外,全部的做用域都經過原型繼承而來,也就是說他們均可以訪問父級做用域。 orm

 
 

AnjularJS在當前做用域中沒法找到某個屬性時,便會在父級做用域中進行查找。若是AnjularJS找不到對應的屬性,會順着父級做用域一直向上尋找,直到抵達$rootScope爲止。 xml

 
 

控制器應該儘量保持短小精悍,而在控制器中進行DOM操做和數據操做則是一個很差的實踐。設計良好的應用會將複雜的邏輯放到指令和服務中。經過使用指令和服務,咱們能夠將控制器重構成一個輕量且更易於維護的形式。 對象

相關文章
相關標籤/搜索