angularjs学习:$digest

angularjs扩展了javascript的事件流程机制:它会扩展这个标准的浏览器流程,创建一个Angular上下文。这个Angular上下文指的是运行在Angular事件循环内的特定代码,该Angular事件循环通常被称作$digest循环。

$digest循环有两个主要组成部分:

    1$watch列表

    2$evalAsync列表

$digest循环过程:

1.绑定$scope对象的UI元素会添加一个$watch到$watch列表中,$watch列表会通过一个叫做“脏值检查”的程序解析

2.脏值检查:Angular会遍历$watch列表,如果从旧值更新后的值没有发生变化,它会继续遍历监控列表。如果值发生了变化,该应用会启用新值并继续遍历$watch列表,只要有任何值发生变化,应用将会退回到$watch循环中,直到检测到不再有任何变化。


3.新的$digest循环没有检测到变化。

4.浏览器拿回控制权,更新与$scope.name新值相应部分的DOM。

================================================================

angularjs是通过$apply来触发angular上下文的,然后进入$digest循环。

转载于:https://my.oschina.net/haoqoo/blog/424626

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值