angularjs學習:$digest

angularjs擴展了javascript的事件流程機制:它會擴展這個標準的瀏覽器流程,建立一個Angular上下文。這個Angular上下文指的是運行在Angular事件循環內的特定代碼,該Angular事件循環一般被稱做$digest循環。 javascript

$digest循環有兩個主要組成部分: java

    1$watch列表 angularjs

    2$evalAsync列表 瀏覽器

$digest循環過程: app

1.綁定$scope對象的UI元素會添加一個$watch到$watch列表中,$watch列表會經過一個叫作「髒值檢查」的程序解析

2.髒值檢查:Angular會遍歷$watch列表,若是從舊值更新後的值沒有發生變化,它會繼續遍歷監控列表。若是值發生了變化,該應用會啓用新值並繼續遍歷$watch列表,只要有任何值發生變化,應用將會退回到$watch循環中,直到檢測到再也不有任何變化。
spa


3.新的$digest循環沒有檢測到變化。
對象

4.瀏覽器拿回控制權,更新與$scope.name新值相應部分的DOM。 事件

================================================================ ip

angularjs是經過$apply來觸發angular上下文的,而後進入$digest循環。 angular

相關文章
相關標籤/搜索