1.ng 啟動并生成視圖時(shí),會將根 ng-app元素同$rootScope進(jìn)行綁定。$rootScope是所有$scope對象的上層。
2.$scope 里的所有的屬性,都可以被視圖訪問到。
3.作用域包含了渲染視圖時(shí)所需的功能和數(shù)據(jù),它是所有視圖的唯一源頭,可以將作用域理解為視圖模型。
4.每當(dāng)事件被處理時(shí),$scope就會對定義的表達(dá)式求值。此時(shí),事件循環(huán)會啟動,并且ng 應(yīng)用會監(jiān)控應(yīng)用程序內(nèi)的所有對象,臟值檢測循環(huán)也會運(yùn)行。
5.$scope 的生命周期
a.創(chuàng)建:創(chuàng)建控制器或者指令時(shí),ng 會用$injector創(chuàng)建一個(gè)新的作用域,并在這個(gè)新建的控制器或者指令運(yùn)行時(shí),將作用域傳遞出去。
b.鏈接:所有的$scope對象都會附加或者鏈接到視圖中。這些作用域?qū)缘疆?dāng)ng應(yīng)用上下文發(fā)生變化需要運(yùn)行的函數(shù)(例如$watch)
c.更新:當(dāng)事件循環(huán)運(yùn)行時(shí),通常執(zhí)行$rootScope,每個(gè)子作用域都執(zhí)行自己的臟值檢測。每個(gè)監(jiān)控函數(shù)都會檢查變化,如果檢查到任何變化,$scope對象就會觸發(fā)指定的回調(diào)函數(shù)。
d.ng會自動銷毀作用域,你也可以手動調(diào)用$destory()的方法來清理這個(gè)作用域