你的位置:首页 > 软件开发 > Java > 谈谈Angular关于$watch,$apply 以及 $digest的工作原理

谈谈Angular关于$watch,$apply 以及 $digest的工作原理

发布时间:2015-03-29 23:03:29
这篇文章主要是面向那些刚开始学AngularJs和想要了解数据绑定(data-binding)是怎么工作的,如果你已经熟悉如何使用angularjs了,我强烈建议你不用阅读了。 angularjs使用者想要知道data-binding是如何工作的,就会遇到很多的关的术语比如$ ...

谈谈Angular关于$watch,$apply 以及 $digest的工作原理

这篇文章主要是面向那些刚开始学AngularJs和想要了解数据绑定(data-binding)是怎么工作的,

如果你已经熟悉如何使用angularjs了,我强烈建议你不用阅读了。

 

angularjs使用者想要知道data-binding是如何工作的,就会遇到很多的关的术语

比如$wacth,$apply,$digest,dirty-checking(脏值检测)...等等,这些又是做什么的呢?

在这篇文章里我会解决所有的疑问,通过结合这些术语在一起来学习。

但是我会尽量用简单的方式来说明。

 

现在开始

The browser events-loop and the Angular.js extension

我们的浏览器会检测等待事件发生,比如用户的一些行为,假如你点击了一个button或者在input写东西,

事件的回调就会在内置的JavaScript跑起来,然后你就能够做一些DOM操作了。

所以当回调发生的时候,浏览器中的DOM会发生一些变化。

 

而Angularjs扩展了这个事件轮询,创建了一个叫angular content的东西(记住它,非常重要的一个概念),

为了解释这个context是什么以及它是怎么工作的,我们需要先了解一下其他的一些概念。

The $watch list

每当你在ui上绑定了东西,就会添加了一个$wacth到$watch list中

你可以把$watch想象成为一个能够察觉model的变化的检测器,

比如你的html代码是

User: <input type="text" ng-model="user" />Password: <input type="password" ng-model="pass" />

原标题:谈谈Angular关于$watch,$apply 以及 $digest的工作原理

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录