Angular如何知道应该重新应用绑定来用更新的数据刷新UI元素

How does Angular know that bindings should be re-applied to refresh UI elements with updated data?

本文关键字:更新 绑定 数据 元素 UI 刷新 应用 何知道 新应用 Angular      更新时间:2023-09-26

我想我了解控制器函数最初是如何用可绑定对象图填充范围的,以及角度指令是如何将该图的元素与UI的各个方面关联起来的。

我还了解当文档在浏览器中加载时,如何第一次将初始数据复制到UI字段中。

我不清楚的是Angular如何知道在底层数据更改时刷新绑定的UI元素。

我可以看到两种可能的方法:

1) 在加载时,当所有设置都运行时,Angular将绑定的JS对象封装在一个更复杂的结构中,当赋值语句使对象"脏"时,该结构允许对象基本上"引发事件"到Angular绑定机制

2) (这是我的最佳猜测)当用户JS代码做了一些事情,比如AJAX回调,它知道会更新数据时,它也会显式地调用模块或控制器上的一个方法来强制重新绑定。

这两种猜测接近吗?

Angular对$watch-ed变量进行"脏检查"。

以下是关于范围变量的Angular文档,以及它们如何与Angular的摘要循环集成

阅读这篇文章以获得更深入的理解。