2016-11-23 106 views
1

我回到Angular,一直在阅读有关摘要循环和观察者的信息,我读过的一篇文章说,对于{{}}中的表达式,角度将在每个周期中对其进行评估。用于表达式的角度守望者

鉴于以下情况,会有3位观察者设置(数量,成本和花括号中的表达式)?

<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> 

该片段是从角显影剂导向截取,当说数量变量增加并且基于绑定到数量观察者摘要火灾它更新模型,然后调用另一个观察者以更新表达大括号?

该文章说,每次循环运行时,即使这两个模型变量没有改变,表达式观察器也会被触发。

谢谢

+0

是的。如果任何模型更改其值,则会自动更新DOM元素及其值。 –

+0

http://stackoverflow.com/questions/9682092/how-does-data-binding-work-in-angularjs –

回答

1

是的,这是观察者被解雇的消化周期。 当观察者被触发时,AngularJS评估范围模型,如果它已经改变,则调用相应的侦听器函数。

+0

是的我明白,但我想知道的是,如果一个单独的观察者被附加到表达式在卷曲括号?如果这是在每个摘要循环中触发的,无论变量是否变化? – berimbolo

+0

是的,所有的手表都是在$ digest循环时触发的,您可以使用{{:: qty * cost |货币}}以绑定观察者一次 – locropulenton