angularjs现学现记之—$apply()和$digest()

angularjs的双向数据绑定是个关键的风味,它让大家的代码简洁了无数,不过它又是何等知道多少产生了转移并转移页面包车型大巴吗。近日看了一篇介绍觉得非凡实用

AngularJS,首先,在angularjs中是有$watch事件的,他的意义正是用来监听数据的变通,并且其有三个参数为回调函数,在产生变化时会执行该函数,而$digest()则是二个循环程式,当其被调用的时候就会循环遍历并触及全数model发生变化了的$watch。再说到$apply(),他便是angularjs用来调用$digest的,一般景观下它都会基于上下文的变动来机关调用,可是一旦你在上下文以外的条件中改变了model,那么就须要手动调用$apply来告诉程序你进行了改动,请检查页面。比如,假设你利用了JavaScript中的setTimeout()来更新三个scope model,那么AngularJS就一向不主意知道您改变了怎么样。这种情状下,调用$apply()就是您的任务了,通过调用它来触发一轮$digest循环

 

如上知情来自于http://www.cnphp6.com/archives/64167的博客,如有兴趣其正文中有更详细的解释和案例。

相关文章