当前位置: 首页 > 知识库问答 >
问题:

AngularJS如何知道变量何时变化?AngularJS脏检查是如何工作的?

董良策
2023-03-14

我读了一些文章来了解AngularJS的工作原理。

我不明白的一个术语是脏检查。

这到底是什么?看起来像观察者模式,但显然更好。

你能帮我理解这个吗?

编辑:对于那些想了解更多信息的人来说,几年前在NgEurope观看swiip的这段视频也很有用。

共有3个答案

田慈
2023-03-14

什么是脏检查?

检查每个手表以检测变化的过程称为脏检查。可能有两种情况

首先–

  1. 从列表中获取手表
  2. 检查项目是否已更改
  3. 如果项目没有变化,那么
  4. 未采取任何行动,请转到监视列表中的下一项

第二-

  1. 从列表中获取手表
  2. 检查项目是否已更改
  3. 如果项目中有更改
  4. DOM需要更新,返回摘要循环

在第二种情况下,循环将继续,直到在整个循环中没有发现任何更改为止。一旦完成,DOM将根据需要进行更新。

充小云
2023-03-14

角脏检查机制工作流程。

脏检查是一个简单的过程,归结为一个非常基本的概念:它检查一个值是否已更改但尚未在应用程序中同步。

我们的Angular应用程序会跟踪当前手表的值。Angular沿着$watch列表向下移动,如果更新的值与旧值没有变化,它会继续沿着列表向下移动。如果值发生变化,应用程序会记录新值并继续沿着$watch列表向下移动。

在这里查看整篇文章

程项禹
2023-03-14

通过此链接:

Angular定义了一个所谓的摘要循环的概念。这个循环可以被认为是一个循环,在此期间Angular检查所有$范围监视的所有变量是否有任何更改。因此,如果您在控制器中定义了$scope.myVar并且该变量被标记为被监视,那么您就是明确告诉Angular在循环的每次迭代中监视myVar上的更改。

这种“摘要”也称为“脏检查”,因为它在某种程度上扫描范围以查找更改。我不能说这是好还是坏,比可观察到的模式。这取决于你的需要。

一些链接:

  • 角留档
  • 一篇关于Angular范围的博客文章

 类似资料:
  • 问题内容: 我正在阅读一些文章,以进一步了解AngularJS的工作原理。 我不理解的术语之一是。 究竟是什么?看起来像观察者模式,但显然更好。 你能帮我理解吗? 编辑:它也可以对谁想要了解更多有关观看的人有用的这段视频从swiip在NgEurope一些年前。 问题答案: Angular定义了所谓的摘要循环的概念。此循环可以视为一个循环,在此循环中Angular检查所有$ scope监视的所有变量

  • 我们将创建一个简单的来显示一个电影的信息。 这个应用程序将只包含两个组件:MovieComponent显示有关电影的信息和MainComponent,它使用按钮来保存对电影的引用以执行一些动作。 我们的AppComponent组件将有三个属性:应用程序的slogan,电影的title(标题)和(主角)。 最后两个属性将被传递到模板中引用的MovieComponent元素。 在上面的代码片段中,我们

  • 问题内容: 这似乎是一个愚蠢的问题,但是我需要知道如何监视页面的整个DOM并在页面发生任何变化时重新对其进行编译。本质上,这是AngularJS在默认情况下通过使用数据绑定来执行的操作,但是我需要在DOM中的任何内容发生变化时(不仅是绑定)发生这种情况。原因是因为我有一个完全用HTML,Javascript和PHP构建的应用程序。它是一个单页应用程序,具有一个主页,并将PHP注入该页面内的DIV包

  • 我有一个服务,说: 我想使用foo来控制以HTML呈现的列表: 以便控制器检测何时维修。foo更新了,我拼凑了这个模式,将服务添加到控制器的

  • 问题内容: 我想知道如何检查变量是否是类(不是实例!)。 我试图使用该函数来执行此操作,但我不知道类将具有哪种类型。 例如,在以下代码中 我试图用 ??? 代替“ ” ,但我意识到这是python中的关键字。 问题答案: 更好的是:使用该功能。

  • 我想知道是否有一种方法可以检查变量是否已经初始化。例如: