link directivas create componentes component javascript angularjs binding lazy-evaluation

javascript - create - directivas angularjs



EncuadernaciĆ³n angular perezosa de una sola vez para expresiones (1)

AngularJS tiene una nueva característica desde la versión 1.3.0-beta.10: la "unión lenta de una sola vez" .

Las expresiones simples pueden tener el prefijo :: , que indica a angular que deje de mirar después de que la expresión se haya evaluado por primera vez. El ejemplo común es algo así como:

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

¿Hay una sintaxis similar para expresiones como las siguientes?

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


Sí. Puede 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 verifica que los dos primeros caracteres de la expresión sean : para activar el enlace de un solo uso (y luego los elimina, por lo tanto, ni siquiera se necesitan los paréntesis). Todo lo demás se mantiene igual.