Javascript 表达式的角度观察者

Javascript 表达式的角度观察者,javascript,angularjs,digest,Javascript,Angularjs,Digest,我回到Angular,一直在阅读关于摘要周期和观察者的文章,我读到的一篇文章说,对于{{}中的表达式,Angular将在每个周期中计算它 鉴于以下情况,是否会设置3个观察者(数量、成本和大括号中的表达式) 发票: 数量: 成本: 总计:{{数量*成本|币种} 该片段摘自angular developer guide(angular developer guide),当qty变量增加且摘要触发时,它是否会基于绑定到qty的观察者更新模型,然后调用另一个观察者来更新大括号中的表达式 <di

我回到Angular,一直在阅读关于摘要周期和观察者的文章,我读到的一篇文章说,对于{{}中的表达式,Angular将在每个周期中计算它

鉴于以下情况,是否会设置3个观察者(数量、成本和大括号中的表达式)


发票:
数量:
成本:
总计:{{数量*成本|币种}
该片段摘自angular developer guide(angular developer guide),当qty变量增加且摘要触发时,它是否会基于绑定到qty的观察者更新模型,然后调用另一个观察者来更新大括号中的表达式

<div ng-app ng-init="qty=1;cost=2">
  <b>Invoice:</b>
  <div>
    Quantity: <input type="number" min="0" ng-model="qty">
  </div>
  <div>
    Costs: <input type="number" min="0" ng-model="cost">
  </div>
  <div>
    <b>Total:</b> {{qty * cost | currency}}
  </div>
</div>
文章说,每次循环运行时,即使这两个模型变量没有改变,表达式观察程序也会被触发


谢谢

是的,现在是$digest周期,观察家们被解雇了。
当一个观察者被激发时,AngularJS评估作用域模型,如果它已经改变,则调用相应的侦听器函数

对。如果任何一个模型改变了它的值,它会自动更新DOM元素及其值。是的,我知道,但我想知道的是,是否有一个单独的观察者以大括号的形式附加到表达式上?如果在每个摘要循环上都触发了该命令,而不管变量是否更改?是的,当$digest循环时,所有的监视都会被触发,您可以使用{{::qty*cost | currency}来绑定监视程序,即使它们所依赖的值没有更改,运行所有表达式不是很费力吗?如果在大型应用程序中,如果一个范围变量在代码深处发生了变化,为什么要让每个表达式重新计算?它不应该是唯一依赖于该变量的变量吗@洛克普伦顿