In allen AngularJS-Beispielen wird die Angular-Bibliothek in den HEAD-Tags des Dokuments platziert. Ich habe ein vorhandenes Projekt, das auf dem HTML5 Boilerplate-Layout basiert. Dies definiert, dass JS-Bibliotheken ganz unten im DOM vor dem </BODY>
Tag platziert werden sollen.
Muss AngularJS im HEAD platziert werden?
angularjs
html5boilerplate
Cadriel
quelle
quelle
Antworten:
AngularJS muss nicht im HEAD platziert werden, und das sollten Sie normalerweise nicht, da dies das Laden des HTML-Codes blockieren würde.
Wenn Sie jedoch AngularJS am Ende der Seite laden, müssen Sie ng-cloak oder ng-bind verwenden , um das "Flashen von nicht kompiliertem Inhalt" zu vermeiden. Beachten Sie, dass Sie auf Ihrer Seite "index.html" nur ng-cloak / ng-bind verwenden müssen. Wenn ng-include oder ng-view oder andere Angular-Konstrukte verwendet werden, um nach dem ersten Laden der Seite zusätzlichen Inhalt abzurufen, wird dieser Inhalt von Angular kompiliert, bevor er angezeigt wird.
Siehe auch https://stackoverflow.com/a/14076004/215945
quelle
ng-cloak
Stilregel (die eigentlich nicht das Versteck) durch die Angularjs Datei hinzugefügt, wird das nicht noch einen Blitz der kompilierten Inhalte geben?Diese eine Antwort auf Google Groups gab mir einen perfekten Einblick (verkürzt):
Wenn Ihr Inhalt also größtenteils über Angular generiert wird, sparen Sie sich das zusätzliche CSS und die
ng-cloak
Anweisungen, indem Sie Angular einfach in den Kopf aufnehmen.https://groups.google.com/d/msg/angular/XTJFkQHjW5Y/pbSotoaqlkwJ
quelle
Nicht unbedingt.
Bitte werfen Sie einen Blick auf diese http://plnkr.co/edit/zzt41VUgR332IV01KPsO?p=preview . Wo der Winkel js am unteren Rand der Seite platziert ist und immer noch die gleiche Ausgabe wiedergibt, wenn er am oberen Rand platziert wird.
quelle
Das Laden von Angular JS am Ende der Seite führt zu einem Aufblitzen von hässlichem {{etwas}} HTML. Wenn Sie die ng-cloak-Direktive im body-Tag verwenden, wird ein leerer Flash erstellt, bis der JS geladen wird, sodass kein Vorteil gegenüber dem Laden von AngularJS in das head-Element entsteht. Sie können jedem Element mit ng-Anweisungen ng-cloak hinzufügen, aber am Ende werden leere Elemente angezeigt. Soooo, laden Sie einfach Angular und Ihre app.js-Dateien in das head-Element, wie in der Angular-Dokumentation in diesem Zitat aus der Dokumentation empfohlen: "Für das beste Ergebnis muss das Angular.js-Skript im head-Abschnitt des HTML-Dokuments geladen werden."
quelle