使AngularJS与其他JavaScript-MVC框架区分开的一件事是,它能够使用绑定将JavaScript中的绑定值回传到HTML。当您为$ scope变量分配任何值时,Angular会“自动”执行此操作。
但是,这有多自动化?有时,Angular不会接受更改,因此我需要调用$ scope。$ apply()或$ scope。$ digest()来通知angular来获取更改。有时,当我运行这些方法中的任何一个时,都会引发错误并指出摘要已在进行中。
因为绑定({{}}大括号或ng属性中的任何内容)都用eval回显,那么这是否意味着Angular会不断轮询$ scope对象以查找更改,然后执行eval将这些更改推送到DOM / HTML?还是AngularJS以某种方式找出了使用魔术变量来触发事件,这些事件在变量值更改或分配时触发?我从未听说过所有浏览器都完全支持它,所以我对此表示怀疑。
AngularJS如何跟踪其绑定和范围变量?
我认为,除了Mark发现的文档部分外,我们还可以尝试列举所有可能的变更来源。