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

angularjs的双向数据绑定是只主要之性状,它给咱的代码简洁了成百上千,然而她同时是怎样了解多少产生了变更并转页面的啊。最近羁押了同一首介绍道大可行

首先,在angularjs中凡出$watch事件的,他的来意就之所以来监听数据的变化,并且其发一个参数为回调函数,在发生变化时会执行该函数,而$digest()则是一个循环程式,当该吃调用的时光就是见面循环遍历并碰所有model发生变化了底$watch。再说到$apply(),他即使是angularjs用来调用$digest的,一般景象下它们还见面依据上下文的改动来机关调用,但是倘若你于上下文以外的条件遭受改变了model,那么即便需要手动调用$apply来告诉程序你进行了转,请检查页面。比如,如果您采取了JavaScript中之setTimeout()来更新一个scope model,那么AngularJS就从未主意知道乃改变了哟。这种景象下,调用$apply()就是你的事了,通过调用它来点发一样轱辘$digest循环

 

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

相关文章