双向数据绑定

Angular 在它的引擎盖下有一些魔力。它可以将 DOM 绑定到真正的 js 变量。

Angular 使用一个名为“ digest loop ”的循环,它在变量调用之后被调用 - 调用更新 DOM 的回调。

例如,ng-model 指令将 keyup eventListener 附加到此输入:

<input ng-model="variable" />

每次 keyup 事件触发时,摘要循环都会启动。

在某些时候,摘要循环遍历回调,该回调更新此范围的内容:

<span>{{variable}}</span>

这个例子的基本生命周期总结了(非常示意性地)角度如何工作::

  1. 角度扫描 html
    • ng-model 指令在输入上创建一个 keyup 监听器
    • expression inside span 添加回调到摘要周期
  2. 用户与输入交互
    • keyup 听众开始摘要周期
    • 摘要周期调用回调
    • 回调更新跨越内容