Que signifient deux deux points dans une expression angulaire {{::}}?

Réponses:

85

La {{::office.name}}syntaxe est la liaison One-Time d'Angular, disponible depuis la version 1.3.
Voici un joli blog qui l'explique.

Teo.sk
la source
99

Liaison unique à partir de Angular Docs.

Une expression commençant par ::est considérée comme une expression à usage unique. Les expressions à usage unique arrêteront de recalculer une fois qu'elles sont stables, ce qui se produit après le premier condensé si le résultat de l'expression est une valeur non indéfinie (voir l'algorithme de stabilisation de valeur ci-dessous).

Dans de nombreuses situations, les valeurs doivent être affichées uniquement dans la vue et ne seront jamais mises à jour à partir de la vue ou du contrôleur. Cependant, si la liaison bidirectionnelle est utilisée, $digestvérifiera les changements dans l'expression à chaque cycle, ce qui n'est pas nécessaire. Dans ces cas, ::doit être utilisé avant l'expression. Comme indiqué dans la déclaration ci-dessus, c'est plus efficace que la syntaxe de liaison bidirectionnelle pour de tels cas.


Blog: Syntaxe de liaison unique AngularJS de @Todd Motto

En un mot, lorsque nous déclarons une valeur telle que {{ ::foo }}dans le DOM, une fois que cette valeur sera définie, Angular la rendra, la dissociera des observateurs et réduira ainsi le volume de liaisons à l'intérieur de la $digestboucle. Facile!

Tushar
la source