AngularJS Hello World: Ihr erstes Beispielprogramm
โก Intelligente Zusammenfassung
AngularJS Hello World-Programme benรถtigen nur eine einzige HTML-Datei, einen Skriptverweis und zwei Direktiven, ng-app und ng-controller, um eine Controller-Scope-Variable รผber einen doppelten geschweiften Ausdruck an die Seite zu binden.

Die beste Mรถglichkeit, die Leistungsfรคhigkeit einer AngularJS-Anwendung kennenzulernen, besteht darin, ein erstes einfaches Programm, eine โHello Worldโ-App, in AngularJS zu erstellen.
Es gibt viele integrierte Entwicklungsumgebungen, die Sie verwenden kรถnnen fรผr AngularJS Im Rahmen der Entwicklung werden einige der gรคngigsten im Folgenden aufgefรผhrt. In unserem Beispiel verwenden wir Webstorm als unsere IDE.
- Webstorm
- Sublime Text
- AngularJS Eclipse
- Visual Studio
Hallo Welt, AngularJS
Versionshinweis: AngularJS 1.x hat den Langzeit-Support am 31. Dezember 2021 verlassen, und das Framework-Team bestรคtigt, dass Die Unterstรผtzung fรผr AngularJS wurde offiziell eingestellt. Im Januar 2022 wurde die Version 1.8.3 als finale Version verรถffentlicht, danach gab es keine Sicherheitsupdates mehr. Jeder der folgenden Schritte und Codeblรถcke ist unverรคndert. Neue Projekte gehรถren in das moderne Angular, wo die gleiche Vorgehensweise beginnt. ng serve und eine eigenstรคndige Komponente und verwendet immer noch dasselbe {{ }} Interpolationssyntax.
Das folgende Beispiel zeigt den einfachsten Weg, Ihre erste โHello Worldโ-Anwendung in AngularJS zu erstellen.
Der untenstehende Screenshot mit Anmerkungen kennzeichnet jeden Teil dieser Datei, und ihre sieben Zahlen stimmen mit den folgenden รผberein: Code Erlรคuterungsliste unten. Die Aufzeichnung stammt von einer frรผheren Version 1.4.0, daher weicht die Skriptzeile von der im Code festgelegten Version ab.
<!DOCTYPE html> <html ng-app="app"> <head> <meta charset="utf 8"> <title>Guru99</title> </head> <body> <h1 ng-controller="HelloWorldCtrl">{{message}}</h1> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script> angular.module("app", []).controller("HelloWorldCtrl", function($scope) { $scope.message="Hello World" } ) </script> </body> </html>
Code Erlรคuterung:
- Die vollstรคndigeng-appDas Schlรผsselwort โโ kennzeichnet diese Anwendung als AngularJS-Anwendung. Der Name der Anwendung kann beliebig gewรคhlt werden.
- Der Controller enthรคlt die Geschรคftslogik. Im h1-Tag mรถchten wir auf Folgendes zugreifen: Controller, das die Logik zur Anzeige von โHello Worldโ enthรคlt, sodass wir sagen kรถnnen, dass wir in diesem Tag auf den Controller mit dem Namen โHelloWorldCtrlโ zugreifen mรถchten.
- Wir verwenden eine Mitgliedsvariable namens โmessageโ, die nichts anderes als ein Platzhalter zur Anzeige der โHello Worldโ-Nachricht ist.
- Das โScript-Tagโ dient dazu, auf das angular.js-Skript zu verweisen, das alle notwendigen Funktionen fรผr AngularJS enthรคlt. Ohne diesen Verweis funktionieren AngularJS-Funktionen nicht.
- Der โControllerโ ist der Ort, an dem wir unsere Geschรคftslogik, also unseren Controller, erstellen. Die Bedeutung der einzelnen Schlรผsselwรถrter wird in den folgenden Kapiteln erlรคutert. Wichtig ist, dass wir eine Controller-Methode namens โHelloWorldCtrlโ definieren, auf die in Schritt 2 verwiesen wird.
- Wir erstellen eine Funktion, die aufgerufen wird, wenn unser Code diesen Controller aufruft. Das `$scope`-Objekt ist ein spezielles, globales Objekt in AngularJS, das innerhalb von AngularJS verwendet wird. Es dient der Datenverwaltung zwischen Controller und View.
- Wir erstellen eine Membervariable namens โmessageโ, weisen ihr den Wert โHello Worldโ zu und binden die Membervariable an das Scope-Objekt an.
HINWEIS: Die ng-controller-Direktive ist ein Schlรผsselwort, das in definiert ist AngularJS (Schritt 2) und dient dazu, Controller in Ihrer Anwendung zu definieren. In unserer Anwendung haben wir das Schlรผsselwort `ng-controller` verwendet, um einen Controller namens โHelloWorldCtrlโ zu definieren. Die eigentliche Logik fรผr den Controller wird in (Schritt 5) erstellt.
Wenn der Code erfolgreich ausgefรผhrt wird, wird die folgende Ausgabe angezeigt, wenn Sie Ihren Code im Browser ausfรผhren.
Ausgang:
Die Nachricht โHallo Weltโ wird angezeigt.
So laden Sie AngularJS: CDN oder lokale Datei
Das obige Beispiel funktioniert, weil eine Zeile das Framework in die Seite einbindet, bevor der Browser das Ende des Body-Bereichs erreicht. AngularJS wird als einzelnes Paket ausgeliefert. JavaEine Skriptdatei ist erforderlich, daher benรถtigt das erste Programm weder einen Build-Schritt noch einen Paketmanager. Eine einfache HTML-Datei, die in einem Browser geรถffnet wird, genรผgt.
Es gibt zwei Mรถglichkeiten, diese Datei zu importieren.
- Verweisen Sie auf eine CDN-Kopie. Das Beispiel verweist auf
code.angularjs.orgund pinnt Version 1.6.9. Dieser Host unterstรผtzt weiterhin 1.x-Builds, die hรถchste Version ist 1.8.2, wรคhrend Google Gehostete Bibliotheken listen AngularJS nicht mehr auf. - Laden Sie eine lokale Kopie herunter. Speichern Sie die Datei neben der HTML-Seite und verweisen Sie das Skript-Tag darauf. Eine lokale Kopie sorgt dafรผr, dass das Beispiel auch offline funktioniert, was wichtig ist, wenn ein Proxy das CDN blockiert.
<!-- Option 1: reference a CDN copy --> <script src="https://code.angularjs.org/1.8.2/angular.min.js"></script> <!-- Option 2: reference a downloaded copy in the same folder --> <script src="angular.min.js"></script>
Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen, angular.js wรคhrend des Lernens und angular.min.js Im Produktivbetrieb: Der nicht minimierte Build erzeugt einen lesbaren Stacktrace. traces, wohingegen die minimierten Build-Berichte umbenannte Variablen enthalten.
Sobald die Datei geladen ist, ng-app startet das Framework. AngularJS sucht nach diesem Attribut, sobald das Dokument geladen ist, behandelt das Element, das es enthรคlt, als Kompilierungswurzel und startet das im Wert angegebene Modul. Daraus ergeben sich drei Konsequenzen:
- Nur der erste
ng-appEine Seite wird automatisch initialisiert. Eine zweite wird ignoriert, es sei dennangular.bootstrapwird manuell aufgerufen. - Der Wert muss ein Modul bezeichnen, das bei registriert ist. winklig.modulAndernfalls meldet die Konsole
[$injector:modulerr]. - Erteilung
ng-appauf diehtmlDas Element, wie im Beispiel gezeigt, bringt das gesamte Dokument unter AngularJS; ein schmalerer Container funktioniert aber auch.
Wie {{ }} Ausdrรผcke und ng-model-Bindung funktionieren
Die doppelten Klammern um message Der h1-Tag enthรคlt keinen Platzhalter, der nur einmal beim Laden des Containers befรผllt wird. AngularJS kompiliert diesen Textknoten in einen Watcher fรผr den umgebenden Bereich. kann, also die gerenderte Ausgabe tracks $scope.message solange die Seite existiert.
Der Zyklus verlรคuft in drei Schritten.
- Der Controller schreibt einen Wert auf
$scope. - Ein Auswertungsdurchlauf vergleicht jeden beobachteten Ausdruck mit seinem vorherigen Ergebnis.
- Jeder Ausdruck, dessen Wert sich geรคndert hat, wird an Ort und Stelle neu gerendert.
Ein interpolierter Ausdruck ist daher unidirektional, vom Gรผltigkeitsbereich zur Ansicht. Eine bidirektionale Bindung ist erforderlich. ng-Modell, hat das Richtlinien Fรผr Formularsteuerelemente konzipiert. Hinzufรผgen <input ng-model="message"> Neben der รberschrift geben Sie etwas in das Feld ein, und die รberschrift รคndert sich bei jedem Tastendruck, da ng-model den Feldwert in dieselbe Bereichseigenschaft zurรผckschreibt, die der Ausdruck รผberwacht.
Ausdrรผcke sind bewusst eingeschrรคnkt. Sie lesen Bereichseigenschaften, rufen Bereichsmethoden auf und tolerieren undefinierte Werte stillschweigend, kรถnnen aber keine Variablen deklarieren, Kontrollflussanweisungen verwenden oder auf globale Objekte wie zugreifen. window.
So beheben Sie eine leere Seite oder einen nicht gerenderten Inhalt {{ }}
Ein erstes AngularJS-Programm schlรคgt auf eine von zwei sichtbaren Arten fehl: Die Seite bleibt leer, oder der Text wird nicht korrekt angezeigt. {{message}} erscheint dort, wo โHello Worldโ stehen sollte. Beides bedeutet, dass das Framework das Markup nicht รผbernommen hat. Fรผhren Sie die folgenden Prรผfungen der Reihe nach durch, wรคhrend die Browserkonsole geรถffnet ist.
- Prรผfen Sie, ob die Bibliothek geladen ist. รffnen Sie das Netzwerk-Panel und suchen Sie nach dem/der/das
angular.jsAnfrage. Bei einem 404-Fehler oder einem nicht erreichbaren CDN bleiben die Klammern auf dem Bildschirm unverรคndert. - รberprรผfen Sie den Skriptpfad. Ein relativer Pfad verweist auf den Ordner, der die HTML-Datei enthรคlt, daher kann eine Kopie in einem
jsUnterordner benรถtigtjs/angular.min.js. - รberprรผfen Sie ng-app. Ein fehlendes oder falsch geschriebenes Attribut bewirkt nichts beim Bootstrapping. Das Attribut wird mit Bindestrich geschrieben als
ng-appim Markup, obwohl die Direktive in CamelCase geschrieben ist JavaSkript. - Lesen Sie die Fehlermeldung in der Konsole.
[$injector:modulerr]Das bedeutet, dass das von ng-app benannte Modul nie registriert wurde.[ng:areq]bedeutet dies in der Regel, dass der Controllername im Markup nicht mit dem รผbergebenen Namen รผbereinstimmt..controller(). - Suchen Sie nach einer zweiten ng-app. Nur das erste Element wird per Bootstrapping initialisiert, sodass ein versehentlich auf einem inneren Element verbliebener Code diesen Teil der Seite stillschweigend deaktiviert.
Zwei weitere Ursachen sind fรผr den Groรteil der รผbrigen Meldungen verantwortlich.
- Das Dateiprotokoll. Dieses Beispiel mit einer einzelnen Datei funktioniert einwandfrei, wenn es direkt von der Festplatte geรถffnet wird. Alle รผber XHR abgerufenen Vorlagen werden jedoch durch die Browser-Ursprungsregeln blockiert. Stellen Sie den Ordner รผber HTTP bereit, sobald die Vorlagen vorhanden sind.
- Ein kurzer Blick auf die Zahnspange. Wenn Markup gerendert wird, bevor das Framework es kompiliert, ist der Rohausdruck kurzzeitig sichtbar. Hinzufรผgen
ng-cloakzum Element oder tauschen Sie den Ausdruck ausng-bind="message", das seine eigene Auszeichnung niemals anzeigt.
Wenn keiner dieser Punkte zutrifft, reduzieren Sie die Seite auf das obige Beispiel und fรผgen Sie Ihren eigenen Code Zeile fรผr Zeile wieder hinzu.


