web-dev-qa-db-fra.com

Angular Liaison ponctuelle paresseuse pour les expressions

AngularJS a une nouvelle fonctionnalité depuis la version 1.3.0-beta.10: le "lazy one-time binding" .

Les expressions simples peuvent être préfixées par ::, indiquant angular d'arrêter de regarder après que l'expression a été évaluée pour la première fois. L'exemple commun donné est quelque chose comme:

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

Existe-t-il une syntaxe similaire pour les expressions comme les suivantes?

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

Oui. Vous pouvez préfixer toutes les expressions avec ::, même ceux de ngIf ou ngClass:

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

En fait, le code vérifie simplement que les deux premiers caractères de l'expression sont : afin d'activer la liaison unique (puis les supprime, ainsi les parenthèses ne sont même pas nécessaires). Tout le reste reste le même.

160
Blackhole