angularJs指令執行的機制==大概的三個階段


第一階段:加載階段

angularJs要運行的話,需要去等待angular.js加載完成,加載完之后呢,angular就會去查找到ng-app這個指令,ng-app在每個應用里面只能出現一次,

它也就相當於我們的main方法,angularjs找到了ng-app之后,就確定了我們應用的邊界在哪里。

所謂的邊界,就是angularjs知道自己要管理哪一塊的內容。

這樣的話,angularjs才可以去啟動起來,加載完成之后,就進入了第二階段

 

第二階段:編譯階段

這個階段,angular.js會做很多的事情

第一步:首先它會去遍歷dom,把整個dom結構中的所有的指令全部查找出來,然后緩存到內部的緩存里面去

第二步:會根據指令代碼中的template,replace,transclue等對dom結構進行一些變換,

           這時候,如果代碼中存在compile函數,angluarjs也會去調用這個函數,如下是自定義的compile

          不過一般我們在自定義指令的時候,是不會去自定義compile函數的,因為在調用自定義compile的時候,還要去調用內部默認的compile,否則默認的compile默認的行為就會被覆蓋

第三階段:鏈接階段

鏈接階段又會做些什么事情呢?

首先,每條指令的link指令都會被調用

我們在指令的編寫指令代碼的時候,除了可以寫compile函數以外,還可以寫link自定義函數,

angularjs在找到這個函數以后,angulajs也會去運行link函數,

我們知道,不要在controller或才其他地方操作dom,因為這個思想不符合angularjs的設計思想,

那么dom在哪些地方可以操作呢?我們可以在link中操作dom

那么這個link函數可以做些什么事情呢?

它可以為dom元素綁定一些事件,綁定作用域,比如雙向數據綁定

指令和雙向數據綁定,就是在link這個階段運行的

以上就是angularjs指令執行的三個階段。

以上內容了解即可。無需刻意去記憶。

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM