Antworten:
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, $digest
wird 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$digest
Schleife verringern . Einfach!