angularjs原理

angular的运行就是在JavaScript context里面自己实现了一套环境,叫做angular环境(angular context),非angular那部分环境叫经典环境(classic context),

在angular context里面也有一个队列,这个队列里面是watch列表,列表里面装的就是那些被监听的变量,包括那些进行数据绑定的变量(也就是和view进行绑定的那些)。如果用户改变了一个绑定了数据的view,这时候会触发一个angular函数$apply(也就是把这个event放入了event queue,然后轮训到这个的时候就触发了),然后把这个改变的值更新进绑定的那个变量,再开始调用一个digest的函数,digest就是用来轮训这个watch列表,看这个列表中的指是否变动,如果有变动就变动改写相应的DOM(不用angular就要自己写这部分代码,如果你有100个变量,你就要写100个这种改动,而且如果以后有啥变动,还得自己去重构)。

posted @ 2017-10-15 21:59  清源如风  阅读(162)  评论(0编辑  收藏  举报