双向绑定的实现依靠的是angular context, 只要接收到在该环境中被管理的事件,就会触发$digest loop。
$digest loop由两部分组成 $evalAsync和$watch。
$digest 会循环 $watch的列表,执行dirty checking。如果有$watch被改变,即使只有一个,$digest loop会再次被触发,直到没有改变。当$digest loop完成时,dom产生变化。
注:dirty-checking 很快,像光一样快(当然是比喻,就是很快)