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