Was bedeuten zwei Doppelpunkte in einem Winkelausdruck {{::}}?

Antworten:

85

Die {{::office.name}}Syntax ist Angulars einmalige Bindung, die seit Version 1.3 verfügbar ist.
Hier ist ein schöner Blog, der dies erklärt.

Teo.sk
quelle
99

Einmalige Bindung von Angular Docs.

Ein Ausdruck, der mit beginnt, ::wird als einmaliger Ausdruck betrachtet. Einmalige Ausdrücke werden nicht mehr neu berechnet, sobald sie stabil sind. Dies geschieht nach dem ersten Digest, wenn das Ausdrucksergebnis ein nicht undefinierter Wert ist (siehe Wertstabilisierungsalgorithmus unten).

In vielen Situationen müssen die Werte nur in der Ansicht angezeigt werden und werden niemals über die Ansicht oder den Controller aktualisiert. Wenn jedoch eine bidirektionale Bindung verwendet wird, $digestwird in jedem Zyklus nach Änderungen im Ausdruck gesucht, die nicht erforderlich sind. In diesen Fällen ::sollte vor dem Ausdruck verwendet werden. Wie in der obigen Anweisung angegeben, ist dies in solchen Fällen effizienter als die bidirektionale Bindungssyntax.


Blog: AngularJS einmalige Bindungssyntax von @Todd Motto

In einer Nussschale {{ ::foo }}wird Angular , wenn wir einen Wert wie im DOM deklarieren , sobald dieser Wert definiert ist, ihn rendern, von den Beobachtern lösen und so das Volumen der Bindungen innerhalb der $digestSchleife verringern . Einfach!

Tushar
quelle