Qual é a diferença entre:
{{::office.name}}
e
{{office.name}}
no angularJS?
Qual é a diferença entre:
{{::office.name}}
e
{{office.name}}
no angularJS?
Uma expressão que começa com
::
é considerada uma expressão única. As expressões ocasionais deixarão de recalcular quando estiverem estáveis, o que acontece após o primeiro resumo se o resultado da expressão for um valor não indefinido (consulte o algoritmo de estabilização de valor abaixo).
Em muitas situações, os valores precisam ser mostrados apenas na visualização e nunca serão atualizados na visualização ou no controlador. No entanto, se for usada a ligação bidirecional, $digest
o verificará se há alterações na expressão em cada ciclo, o que não é necessário. Nestes casos, ::
deve ser usado antes da expressão. Conforme declarado na declaração acima, isso é mais eficiente do que a sintaxe de ligação bidirecional para esses casos.
Blog: Sintaxe de ligação única do AngularJS do @Todd Motto
Em poucas palavras, quando declaramos um valor como
{{ ::foo }}
dentro do DOM, uma vez que esse valor seja definido, o Angular irá renderizá-lo, desvinculá-lo dos observadores e, assim, reduzir o volume de ligações dentro do$digest
loop. Simples!