AngularJS has a new feature since the version 1.3.0-beta.10: the "lazy one-time binding".
Simple expressions can be prefixed with ::
, telling angular to stop watching after the expression was first evaluated. The common example given is something like:
<div>{{::user.name}}</div>
Is there a similar syntax for expressions like the following ones?
<div ng-if="user.isSomething && user.isSomethingElse"></div>
<div ng-class="{classNameFoo: user.isSomething}"></div>
Yes. You can prefix every expressions with ::
, even the ones in ngIf
or ngClass
:
<div ng-if="::(user.isSomething && user.isSomethingElse)"></div>
<div ng-class="::{classNameFoo: user.isSomething}"></div>
Actually, the code simply checks that the two first characters in the expression are :
in order to activate the one-time binding (and then removes them, thus the parenthesis aren't even needed). Everything else remains the same.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With