Avatar ·

AngularJS 中的双向数据绑定是如何工作的?

大家好!我开始学习 AngularJS,但一直无法理解双向数据绑定(two-way data binding)是如何工作的。我读过文档,但仍然感到困惑。 我有一个简单的输入表单示例。我希望当输入框中的文本改变时,页面上的文本能自动更新。我使用了 ng-model 指令,但不明白底层发生了什么。 这是我的代码: ```javascript // app.js var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.name = 'John Doe'; }); ``` ```html

你好,{{ name }}!

``` 一切正常,但我不明白: 1. AngularJS 如何知道输入框中的值发生了变化? 2. 为什么在代码中改变 $scope.name 变量(例如通过 setTimeout)也会更新输入框? 3. 什么是“脏检查”(dirty checking)以及为什么需要它? 4. 有没