Angular 双向数据绑定

Angular 提供双向数据绑定。

在angular Controller的$scope中声明数据模型,在模板中进行绑定。angular会自动添加DOM事件,并在$scope发生改变时自动进行DOM操作.

Angular的数据绑定特性,对于表单特别有用,可以在用户输入数据时实时提示有误或正确。

scope在Angular中代表着数据模型,它是模板表达式的上下文.

数据绑定会出现这些词,$watch,$apply,$digest, dirty checking

1、每一个双向绑定的元素都有一个$watcher;

2、在某些事件发生改变时,调用digest脏数据检查,这些事件包括:表单内容的变化,Ajax请求响应;

3、脏数据检查会检查rootscope下所有被$watch的元素。

Angular的dirty-checking机制

ng只有在指定时间触发时,才进入$dirty cycle:

  DoM事件,比如用户输入文本,点击按钮(ng-click);

  XHR响应事件($http)

  浏览器Location变更事件($location)

  Timer事件($timeout,$interval)

  执行$digest和$apply

 点击按钮 ng-click

会调用$apply,然后就会执行$digest循环,于是所有的$watch都会被检查。

$apply 是$scope的一个函数,调用它会强制执行一次$digest循环(除非当前正在执行循环,这种情况下会抛出一个异常)

原文地址:https://www.cnblogs.com/WaTa/p/5753747.html