Ich habe kürzlich den Code für eine mit eckig erstellte Webanwendung überprüft und festgestellt, dass er mit der ng-app="myModule"
auf dem <body>
Tag platzierten Direktive geschrieben wurde . Beim Lernen von Angular habe ich nur gesehen, dass es auf dem <html>
Tag verwendet wird, wie in den Angular-Dokumenten hier , hier und in ihrem Tutorial empfohlen .
Ich habe das ein bisschen erkundet auf eigene Faust und fand SO Fragen, vor allem diese ein und in ähnlicher Weise diese ein , die für eine Seite mehrere Module diskutieren geladen. Diese Technik unterscheidet sich jedoch von meinem Fall, da ng-app auf Elementen im Körper platziert und manuelles Bootstrapping verwendet wird, um zwei eckige Apps gleichzeitig auszuführen.
Soweit ich das beurteilen kann, gibt es zur Laufzeit keinen Unterschied zwischen einer App mit ng-app
on <html>
oder <body>
. Wie ich es verstehe, ng-app
bezeichnet die Wurzel einer Winkel Anwendung, so dass die Platzierung auf der von ihm <body>
abschneiden würde <head>
der Winkel des Oszilloskops, aber ich kann von jeder größeren Art und Weise nicht , dass dies die Dinge beeinflussen würde. Meine Frage lautet also: Was ist der technische Unterschied zwischen dem Platzieren ng-app
auf einem dieser Tags anstelle des anderen?
Ich war in einem Team, das an einer Legacy-App arbeitete, und fand es am besten, das ng-app-Tag in einem div zu verwenden, das als Wrapper verwendet wird, um neuen Code vom Legacy-Code zu isolieren.
Wir haben dies bei der Arbeit an der App entdeckt, die sich stark auf jqGrid und Dojo stützte.
Als wir dem Head-Tag ng-app hinzugefügt haben, hat es die Site in die Luft gesprengt, aber wenn wir einen Wrapper verwendet haben, konnten wir Angular ohne Probleme verwenden.
quelle
AngularJS bootet die erste ng-App, die es findet! Das ist es. Wenn Sie mehr als eine ng-App haben, wird nur die erste verarbeitet. Wenn Sie ein anderes Element booten möchten, verwenden Sie angle.bootstrap ()
Der Wert des Attributs ng-app ist ein Modul, das erstellt wurde mit:
Ein Modul definiert, wie eckig gebootet wird, da wir im Gegensatz zu anderen Programmiersprachen keine main () -Methode haben. Wenn der Wert von ng-app leer ist, wird standardmäßig das Standardmodul 'ng' verwendet.
Es soll etwas schneller sein, da Angular alle Elemente innerhalb des Elements verarbeitet, in dem sich ng-app befand. Aber ich bezweifle ein wenig, weil der Unterschied kaum spürbar sein wird, es sei denn, Sie haben ein sehr sehr sperriges DOM.
Wenn Sie Beispiele hier wünschen: http://noypi-linux.blogspot.com/2014/07/angularjs-tutorials-understanding.html
quelle