标签:dom follow ges 区别 button 自定义 pen 改变 总结
由于工作的原因,使用angular1.x版本已经有一段时间了,虽然angualr2升级后就完全重构了,但每个版本存在也有一定的道理。话不多说,进入正题。
AngualrJS的双向绑定基于脏检查机制,$scope上有一个监听队列,每当向视图上绑定一个值,就会向watch list中插入一个watch,当遇到可以被Angular context处理的事件,就会触发$digest循环,遍历所有的watch,更新DOM。
UI发生变化,ajax请求,ng-click,$timeout...
$digest循环并不是只运行一次的,一旦angualar运行整个$watch列表,如果任何值发生改变,应用程序将回退到$watch循环,直到它检测到没有任何更改。
不会,如果循环运行超过十次,angular会抛出异常,应用程序就会死掉。
<button ng-click="">click</button>
会。
会。
会。
关于以上三个问题的总结,一个绑定表达式只要放在当前 DOM 树里就会被监视,不管它是否可见,不管它是否被放在另一个 Tab 里,更不管它是否与用户操作相关。
$apply会从rootScope上调用$digest
大致想到两种场景
如有写的不正确的地方,欢迎留言讨论。参考文章The-Digest-Loop-and-apply
标签:dom follow ges 区别 button 自定义 pen 改变 总结
原文地址:https://www.cnblogs.com/jingmi-coding/p/10142943.html