Javascript AngularJS和#x27;s$手表功能工作吗?

Javascript AngularJS和#x27;s$手表功能工作吗?,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我现在读了很多关于AngularJS的书,我发现了神奇的$watch功能。我知道如何使用它,但我想知道它是如何在后台实现的。它是一个时间间隔函数吗?还是每执行一条语句都会调用这个手表 我现在不想深入研究源代码,如果你们中的一位已经知道答案,并且想分享他关于这个主题的知识,我会很高兴 谢谢。每个摘要循环都会对所有手表进行评估(有时会多次)。摘要循环是由于某个事件或调用$apply()而进入的。手表不会根据计时器定期调用 看 浏览器的事件循环等待事件到达。事件的回调将被执行。。。执行回调后,浏览器将

我现在读了很多关于AngularJS的书,我发现了神奇的$watch功能。我知道如何使用它,但我想知道它是如何在后台实现的。它是一个时间间隔函数吗?还是每执行一条语句都会调用这个手表

我现在不想深入研究源代码,如果你们中的一位已经知道答案,并且想分享他关于这个主题的知识,我会很高兴

谢谢。

每个摘要循环都会对所有手表进行评估(有时会多次)。摘要循环是由于某个事件或调用$apply()而进入的。手表不会根据计时器定期调用

浏览器的事件循环等待事件到达。事件的回调将被执行。。。执行回调后,浏览器将离开JavaScript上下文,并根据DOM更改重新呈现视图。Angular通过提供自己的事件处理循环来修改普通JavaScript流。这将JavaScript分为经典和角度执行上下文。。。Angular执行[some]stimulsfn(),这通常会修改应用程序状态。Angular进入$digest循环。循环由两个较小的循环组成,它们处理$evalAsync队列和$watch列表。$digest循环不断迭代,直到模型稳定,这意味着$evalAsync队列为空,$watch列表没有检测到任何更改。$watchlist是一组表达式,自上次迭代以来可能已更改。如果检测到更改,则调用$watch函数,该函数通常使用新值更新DOM


这也会对您有所帮助。。。下面是一篇关于其工作原理的真实文章:与文档的确切链接: