ng中的digest


这篇主要就是很简单地来澄清一下angular中的 $apply() 到底是干什么用的,说的直接一点,现在遇到的是在你写自己的 directive 的时候,触发了一个事件,那么应用的控制权会转移到 Native JS 中去,并且你在事件的回调函数中改变了 注册在 scope 中的一些 model ,那么,为了让 angular 依然能够通过 $watch() 看到 model 的变化(虽然watch是隐形地进行的),那么就需要通过调用 scope.$apply() 让应用的控制权转移回去给 angular ,也就是说所谓地进入它的“消化周期”中,也就是 digest loop 中了。
具体可以看 Using scope.$watch and scope.$apply

如果上面stack overflow的文章还不够的话,可以看一下这篇咯AngularJS and scope.$apply

左银右煌 /
Published under (CC) BY-NC-SA in categories programming  tagged with AngularJS