javascript - funcion - ng-if
¿Qué significan dos puntos dentro de una expresión angular{{::}}? (2)
Cuál es la diferencia entre:
{{::office.name}}
y
{{office.name}}
en angularJS?
La sintaxis
{{::office.name}}
es el enlace único de Angular, disponible desde la versión 1.3
Here''s
un buen blog que lo explica.
Encuadernación única de documentos angulares.
Una expresión que comienza con
::
se considera una expresión de una sola vez. Las expresiones únicas dejarán de recalcular una vez que sean estables, lo que sucede después del primer resumen si el resultado de la expresión es un valor no definido (consulte el algoritmo de estabilización del valor a continuación).
En muchas situaciones, los valores solo deben mostrarse en la vista y nunca se actualizarán desde la vista o el controlador.
Sin embargo, si se utiliza el enlace bidireccional,
$digest
verificará cualquier cambio en la expresión en cada ciclo, lo cual no es necesario.
En estos casos,
::
debe usarse antes de la expresión.
Como se indicó en la declaración anterior, esto es más eficiente que la sintaxis de enlace bidireccional para tales casos.
Blog: sintaxis de enlace de AngularJS de @Todd Motto
En pocas palabras, cuando declaramos un valor como
{{ ::foo }}
dentro del DOM, una vez que este valor se define, Angular lo generará, lo desenlazará de los observadores y así reducirá el volumen de enlaces dentro del$digest
lazo. ¡Sencillo!