Es scheint in erster Linie ein Problem im IE zu sein, wenn eine Reihe von Bildern / Skripten geladen werden müssen. Es kann eine gute Zeitspanne geben, in der das Literal {{stringExpression}}
im Markup angezeigt wird und dann verschwindet, sobald der Winkel mit der Kompilierung / Interpolation von fertig ist das Dokument.
Gibt es einen häufigen Grund dafür, der darauf hinweist, dass ich im Allgemeinen etwas falsch mache, oder gibt es einen bekannten Weg, dies zu verhindern?
Antworten:
Ich denke, dass Sie nach der
ngCloak
Richtlinie suchen : https://docs.angularjs.org/api/ng/directive/ngCloakAus der Dokumentation:
quelle
ngCloak
weit verbreitet / Best Practice, um den rohen Angular-HTML-Code zu vermeiden ? Es scheint ein Kinderspiel zu sein, aber ich habe keine Erfahrung mit AngularJS.<head>
Abschnitt Ihres HTML- CodesngCloak
, um effektiv zu sein.angular.js
in den<head>
Bereich meiner Seite lade .Sie können auch
<span ng-bind="hello"></span>
anstelle von verwenden{{hello}}
.http://jsfiddle.net/4LhN9/34/
quelle
Stellen Sie sicher, dass das folgende CSS im Kopf des Dokuments geladen ist, um die Effektivität des Ansatzes class = 'ng-cloak' beim letzten Laden von Skripten zu verbessern:
quelle
visibility: hidden
besser?!important
ist ein CSS- Hack (eine schlechte Sache), um einen Stil zu fördern, der ausgewählt werden soll, oder? Es verstößt gegen die CSS-Auswahlregeln.Fügen Sie einfach das Tarn-CSS zum Kopf der Seite oder zu einer Ihrer CSS-Dateien hinzu:
Dann können Sie die ngCloak-Direktive gemäß der normalen Angular-Praxis verwenden, und sie funktioniert noch, bevor Angular selbst geladen wird.
Genau das macht Angular: Der Code am Ende von angle.js fügt die obigen CSS-Regeln am Kopf der Seite hinzu.
quelle
[ngcloak]
mir den Selektor selbst ausgedacht, aber dieser ist vollständiger.Fügen Sie in Ihrem CSS Folgendes hinzu
Und dann können Sie in Ihrem Code die ng-cloak-Direktive hinzufügen. Zum Beispiel,
Das ist es!
quelle
Sie können auch
ng-attr-src="{{variable}}"
anstelle von verwendensrc="{{variable}}"
und das Attribut wird erst generiert, wenn der Compiler die Vorlagen kompiliert hat. Dies wird hier in der Dokumentation erwähnt: https://docs.angularjs.org/guide/directive#-ngattr-attribute-bindingsquelle
Ich stimme der Antwort von @ pkozlowski.opensource zu, aber die ng-clock-Klasse funktionierte bei mir nicht für die Verwendung mit ng-repeat. Daher möchte ich Ihnen empfehlen, class für einfache Trennzeichen wie {{name}} und ngCloak für ng-repeat zu verwenden.
und
quelle