Angular ленивая одноразовая привязка для выражений - программирование
Подтвердить что ты не робот

Angular ленивая одноразовая привязка для выражений

У AngularJS есть новая функция с версии 1.3.0-beta.10: "ленивая одноразовая привязка" .

Простые выражения могут иметь префикс с ::, говоря angular, чтобы остановить просмотр после того, как выражение было впервые оценено. Общий пример приведен в следующем виде:

<div>{{::user.name}}</div>

Есть ли аналогичный синтаксис для выражений, подобных следующим?

<div ng-if="user.isSomething && user.isSomethingElse"></div>
<div ng-class="{classNameFoo: user.isSomething}"></div>
4b9b3361

Ответ 1

Да. Вы можете префикс каждого выражения ::, даже те, что указаны в ngIf или ngClass:

<div ng-if="::(user.isSomething && user.isSomethingElse)"></div>
<div ng-class="::{classNameFoo: user.isSomething}"></div>

Фактически, код просто проверяет, что два первых символа в выражении :, чтобы активировать одноразовую привязку ( а затем удаляет их, поэтому скобки не нужны). Все остальное остается прежним.