【发布时间】:2012-09-09 22:38:28
【问题描述】:
AngularJS 与其他 JavaScript-MVC 框架的不同之处在于它能够使用绑定将绑定值从 JavaScript 回显到 HTML 中。当您为 $scope 变量分配任何值时,Angular 会“自动”执行此操作。
但这有多自动化?有时,Angular 不会接受更改,因此我需要调用 $scope.$apply() 或 $scope.$digest() 来通知 Angular 接受更改。有时,当我运行其中任何一个方法时,它会抛出一个错误并说摘要已经在进行中。
由于绑定({{ }} 大括号或 ng 属性中的任何内容)都与 eval 相呼应,这是否意味着 Angular 会不断轮询 $scope 对象以查找更改,然后执行 eval 以将这些更改推送到DOM/HTML?或者 AngularJS 是否以某种方式找出了使用魔法变量,这些变量会在变量值更改或分配时触发事件?我从未听说过它被所有浏览器完全支持,所以我对此表示怀疑。
AngularJS 如何跟踪它的绑定和作用域变量?
【问题讨论】:
-
我发现docs.angularjs.org/guide/concepts#runtime 中以“这里是 Hello world 示例如何实现数据绑定效果的解释”开头的部分很有帮助。
-
这篇文章如果你还没有看到它也很有用:stackoverflow.com/questions/9682092/databinding-in-angularjs/…
-
评论您的第一个声明性段落:Angular 的“使用绑定将绑定值从 JavaScript 回显到 HTML 的能力”听起来像是一种令人困惑的说法“数据绑定”。在这个时间点上,它并没有真正将 Angular 与其他框架(如 Ember 或 React)区分开来。这个问题很有用,不要误会我的意思。但第一段只是我碰巧不同意的观点——我会编辑这个问题,但我觉得不够权威。
标签: angularjs