angular的ng-checked实现机制

  • A+

angular 是基于脏检查更新视图。每次数据发生变化,至少需要两轮digest。为啥?数据发生变化,第一轮触发watches等;第二轮确保数据没有再发生变化,否则还会触发新一轮digest。

ng-checked会产生一个watch,初始化对表达式check()求值,数据发生变化(原先是没有值的)。于是,需要至少再一轮digest。如果check()返回mm,每次都有数据变化,那么会触发十轮digest,并且抛出一个错误:Infinite $digest Loop。因为digest默认连续触发最多十次。
根据此原理就可很方便的在angular项目实现多选,全选等操作

weinxin
我的微信
这是我的微信扫一扫
kiven

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: