Quelle est la différence entre:
{{::office.name}}
et
{{office.name}}
dans angularJS?
Le {{::office.name}}
_ est la syntaxe One-Time de Angular, disponible depuis la version 1.3.
Voici un blog de Nice l'expliquant.
Reliure ponctuelle De Angular Docs.
Une expression qui commence par
::
est considéré comme une expression unique. Les expressions uniques arrêtent 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 des valeurs ci-dessous).
Dans de nombreuses situations, les valeurs doivent uniquement être affichées dans la vue et ne seront jamais mises à jour à partir de la vue ou du contrôleur. Toutefois, si une liaison bidirectionnelle est utilisée, $digest
vérifiera les modifications éventuelles de l'expression dans chaque cycle, ce qui n'est pas nécessaire. Dans ces cas, ::
devrait être utilisé avant l'expression. Comme indiqué dans la déclaration ci-dessus, cela est plus efficace que la syntaxe de liaison bidirectionnelle pour de tels cas.
Blog: Syntaxe de liaison ponctuelle AngularJS de @ Todd Motto
En un mot, quand nous déclarons une valeur telle que
{{ ::foo }}
à l'intérieur du DOM, une fois cette valeur définie, Angular la restituera, la dissociera des observateurs et réduira ainsi le volume des liaisons à l'intérieur de la$digest
boucle. Facile!