Encuadernación angular lazy de una sola vez para expresiones


AngularJS tiene una nueva característica desde la versión 1.3.0-beta.10: el "lazy one-time binding".

Las expresiones simples pueden ser prefijadas con ::, indicando a angular que deje de mirar después de que la expresión fue evaluada por primera vez. El ejemplo común dado es algo como:

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

¿Existe una sintaxis similar para expresiones como las siguientes?

<div ng-if="user.isSomething && user.isSomethingElse"></div>
<div ng-class="{classNameFoo: user.isSomething}"></div>
Author: Blackhole, 2014-05-31

1 answers

Sí. Puedes prefijar todas las expresiones con ::, incluso las de ngIf o ngClass:

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

En realidad, el código simplemente comprueba que los dos primeros caracteres de la expresión son : para activar el enlace de una sola vez (y luego los elimina, por lo que los paréntesis ni siquiera son necesarios). Todo lo demás sigue igual.

 157
Author: Blackhole,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-31 12:54:32