angular中 $watch, $digest, $appl
2017-09-06 本文已影响0人
Lilio
$watch(监听): 当模版加载完毕时,也就是在linking阶段(Angular分为compile阶段和linking阶段),Angular解释器会寻找每directive,然后生成每个需要的$watch
$digest(循环):浏览器接收到一个事件后,进入angularcontext,$digest循环开始执行,查询每个$watch的检测值是否变化,一旦有值发生变化,浏览器拿回控制权,更新与$scope.name新值相应部分的DOM。然后$digest会强制再执行一次$digest循环,直到没检查到变化时为止。
$apply(通知):使用默认的内置angular指令时,不需要调用$apply,因为angular组件已为我们封装好了的,但当使用原生js或者jquery插件时,需要自己手动调用$apply,生成一个angularcontext的执行环境,响应view层值的改变