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>
Ответы
Ответ 1
Да. Вы можете префикс каждого выражения ::
, даже те, что указаны в ngIf
или ngClass
:
<div ng-if="::(user.isSomething && user.isSomethingElse)"></div>
<div ng-class="::{classNameFoo: user.isSomething}"></div>
Фактически, код просто проверяет, что два первых символа в выражении :
, чтобы активировать одноразовую привязку ( а затем удаляет их, поэтому скобки не нужны). Все остальное остается прежним.