O que dois dois pontos dentro de uma expressão angular {{::}} significam?

Respostas:

85

A {{::office.name}}sintaxe é a ligação One-Time do Angular, disponível desde a versão 1.3.
Aqui está um bom blog explicando isso.

Teo.sk
fonte
99

Vinculação única do Angular Docs.

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, $digesto 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 $digestloop. Simples!

Tushar
fonte