2016-11-23 3 views
1

Я возвращаюсь к Угловому и читаю о цикле дайджеста и наблюдателях, одно сообщение, которое я прочитал, сказал, что для выражений в {{}} угловое значение будет оцениваться в каждом цикле.Угловые наблюдатели для выражений

Учитывая следующее, будет создано 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> 

Фрагмент взят из углового руководства разработчика, когда говорят, что кол-во переменном увеличиваются, а переваривать пожары не обновляет модель на основе наблюдателя, связанный с Qty, а затем вызвать другой наблюдатель, чтобы обновить свое выражение в фигурные скобки?

В статье сказано, что каждый раз, когда цикл выполняется, наблюдатель выражений будет уволен, даже если эти две переменные модели не изменились.

Благодаря

+0

Да. Если какая-либо модель изменяет свое значение, она автоматически обновляет элементы DOM и их значения. –

+0

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

ответ

1

Да, это цикл $ переваривать, где наблюдатели увольняют. Когда наблюдатель уволен, AngularJS оценивает модель области видимости и, если она изменилась, вызывается соответствующая функция прослушивателя.

+0

Да, я понимаю это, но то, что я хотел бы знать, - это отдельный наблюдатель, привязанный к выражению в фигурных брекеты? И если это срабатывает в каждом цикле дайджест независимо от того, изменились ли переменные? – berimbolo

+0

Да, все часы увольняются, когда $ digest цилирует, вы можете использовать {{:: qty * cost | currency}}, чтобы связать наблюдателя один раз – locropulenton

Смежные вопросы