angularjs脏机制

Angular 每个绑定到UI的数据,就会有一个 $watch 对象。javascript

watch = {
    name:'',      //当前的watch 对象 观测的数据名
    getNewValue:function($scope){ //获得新值
        ...
        return newValue;
        },
    listener:function(newValue,oldValue){  // 当数据发生改变时须要执行的操做
        ...
    }
}

 

每当咱们将数据绑定到 UI 上,angular 就会向你的 watchList 上插入一个 $watch。
好比:{{model}}java

当model的值发生变化时,就发生了一次检查。ajax

简单理解,一次脏检查就是调用一次 $apply() 或者 $digest(),将数据中最新的值呈如今界面上。app

而每次 UI 事件变动,ajax 还有 timeout 都会触发 $apply()。函数

 

$digest()
检测当前scope以及子scope中全部的watches,由于监听函数会在执行过程当中修改model(scope中的变量),$digest()会一直被调用直到model没有再变。当调用超过10次时,$digest()会抛出一个异常"Maximum iteration limit exceeded',以此来防止程序进入一个死循环。对象

相关文章
相关标签/搜索