Cuál es la diferencia entre:
{{::office.name}}
y
{{office.name}}
en angularJS?
Respuestas:
Una expresión que comienza con
::
se considera una expresión de una sola vez. Las expresiones únicas dejarán de recalcularse una vez que sean estables, lo que ocurre después del primer resumen si el resultado de la expresión es un valor no indefinido (consulte el algoritmo de estabilización de 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 usa un enlace bidireccional, $digest
verificará si hay cambios en la expresión en cada ciclo, lo cual no es necesario. En estos casos, ::
debe usarse antes de la expresión. Como se indica en la declaración anterior, esto es más eficiente que la sintaxis de enlace bidireccional para tales casos.
Blog: sintaxis de enlace único 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 renderizará, lo desvinculará de los observadores y así reducirá el volumen de enlaces dentro del$digest
bucle. ¡Sencillo!