AngularJS Hello World: Twój pierwszy przykładowy program
⚡ Inteligentne podsumowanie
Programy AngularJS Hello World potrzebują tylko jednego pliku HTML, jednego odwołania do skryptu i dwóch dyrektyw, ng-app i ng-controller, aby powiązać zmienną zakresu kontrolera ze stroną za pomocą wyrażenia w podwójnym nawiasie klamrowym.
Najlepszym sposobem na docenienie potencjału aplikacji AngularJS jest stworzenie swojego pierwszego prostego programu „Hello World” w AngularJS.
Istnieje wiele zintegrowanych środowisk programistycznych, z których możesz korzystać angularjs Rozwój, niektóre z popularnych są wymienione poniżej. W naszym przykładzie używamy Webstorm jako nasze IDE.
- Webstorm
- Sublime Text
- angularjs Eclipse
- visual Studio
Witaj, świecie, AngularJS
Uwaga dotycząca wersji: AngularJS 1.x zakończył długoterminowe wsparcie 31 grudnia 2021 r., a zespół ds. frameworka potwierdza, że Wsparcie AngularJS oficjalnie zakończone W styczniu 2022 roku ukazała się finalna wersja 1.8.3, po której nie było żadnych poprawek bezpieczeństwa. Każdy krok i poniższy blok kodu jest zachowany dokładnie tak, jak został napisany. Nowe projekty powinny być w nowoczesnym Angularze, gdzie to samo ćwiczenie zaczyna się od… serwer ng i samodzielny komponent i nadal używa tego samego {{ }} składnia interpolacji.
Poniższy przykład pokazuje najprostszy sposób stworzenia pierwszej aplikacji typu „Hello world” w AngularJS.
Poniższy zrzut ekranu z adnotacjami opisuje każdą część pliku, a siedem numerów odpowiada Code Lista wyjaśnień poniżej. Została ona przechwycona w starszej wersji 1.4.0, więc jej wiersz skryptu różni się od wersji przypiętej w kodzie.
<!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 Wyjaśnienie:
- "aplikacja ngSłowo kluczowe „” oznacza, że ta aplikacja powinna być traktowana jako aplikacja AngularJS. Można nadać tej aplikacji dowolną nazwę.
- Kontroler to element służący do przechowywania logiki biznesowej. W znaczniku h1 chcemy uzyskać dostęp do kontroler, który będzie miał logikę wyświetlania „Hello World”, więc możemy powiedzieć, że w tym tagu chcemy uzyskać dostęp do kontrolera o nazwie „HelloWorldCtrl”.
- Używamy zmiennej członkowskiej o nazwie „message”, która jest niczym innym jak symbolem zastępczym wyświetlającym komunikat „Hello World”.
- Znacznik „script” służy do odwołania się do skryptu angular.js, który zawiera wszystkie niezbędne funkcje AngularJS. Bez tego odwołania, jeśli spróbujemy użyć jakichkolwiek funkcji AngularJS, nie będą one działać.
- „Kontroler” to miejsce, w którym faktycznie tworzymy logikę biznesową, czyli nasz kontroler. Szczegóły każdego słowa kluczowego zostaną wyjaśnione w kolejnych rozdziałach. Należy zauważyć, że definiujemy metodę kontrolera o nazwie „HelloWorldCtrl”, do której odwołujemy się w kroku 2.
- Tworzymy „funkcję”, która zostanie wywołana, gdy nasz kod wywoła ten kontroler. Obiekt $scope to specjalny obiekt w AngularJS, który jest obiektem globalnym używanym w AngularJS. Obiekt $scope służy do zarządzania danymi między kontrolerem a widokiem.
- Tworzymy zmienną członkowską o nazwie „message”, przypisujemy jej wartość „Hello World” i dołączamy zmienną członkowską do obiektu zakresu.
UWAGA: Dyrektywa ng-controller jest słowem kluczowym zdefiniowanym w angularjs (Krok 2) i służy do definiowania kontrolerów w aplikacji. W naszej aplikacji użyliśmy słowa kluczowego ng-controller do zdefiniowania kontrolera o nazwie „HelloWorldCtrl”. Faktyczna logika kontrolera zostanie utworzona w (Kroku 5).
Jeśli kod zostanie wykonany pomyślnie, po uruchomieniu kodu w przeglądarce zostanie wyświetlony następujący komunikat.
Wyjście:
Wyświetli się komunikat „Witaj, świecie”.
Jak załadować AngularJS: CDN czy plik lokalny
Powyższy przykład działa, ponieważ jeden wiersz wciąga framework na stronę, zanim przeglądarka dotrze do końca treści. AngularJS jest dostarczany jako pojedynczy JavaPlik skryptu, więc pierwszy program nie wymaga kompilacji ani menedżera pakietów. Wystarczy zwykły plik HTML otwarty w przeglądarce.
Istnieją dwa sposoby pobrania tego pliku.
- Skorzystaj z kopii CDN. Przykład wskazuje na
code.angularjs.orgi wersja pinów 1.6.9. Ten host nadal obsługuje kompilacje 1.x, przy czym najnowsza wersja to 1.8.2, podczas gdy Google Biblioteki hostowane nie zawierają już listy AngularJS. - Pobierz lokalną kopię. Zapisz plik obok strony HTML i wskaż na niego znacznik skryptu. Lokalna kopia utrzymuje przykład w trybie offline, co ma znaczenie, gdy serwer proxy blokuje sieć CDN.
<!-- 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>
Zastosowanie angular.js podczas nauki i angular.min.js w produkcji: niezminimalizowana kompilacja drukuje czytelny stos traces, podczas gdy skompilowana wersja raportuje zmienne o zmienionych nazwach.
Po załadowaniu pliku ng-app Uruchamia framework. AngularJS szuka tego atrybutu po załadowaniu dokumentu, traktuje element, który go zawiera, jako źródło kompilacji i uruchamia moduł wskazany w jego wartości. Następują trzy konsekwencje:
- Tylko pierwszy
ng-appna stronie jest automatycznie bootstrapowany. Drugi jest ignorowany, chyba żeangular.bootstrapjest wywoływany ręcznie. - Wartość musi wskazywać nazwę modułu zarejestrowanego w kątowy.modułw przeciwnym razie konsola zgłosi
[$injector:modulerr]. - wprowadzanie
ng-appnahtmlelement, jak w przykładzie, umieszcza cały dokument w AngularJS; węższy kontener również zadziała.
Jak działają wyrażenia {{ }} i powiązanie ng-model
Podwójne wsporniki wokół message W tagu h1 nie ma symbolu zastępczego wypełnianego jednorazowo w momencie ładowania. AngularJS kompiluje ten węzeł tekstowy do obserwatora w otaczającym go obiekcie. zakres, więc wyrenderowany wynik tracks $scope.message Tak długo, jak długo istnieje strona.
Cykl składa się z trzech etapów.
- Kontroler zapisuje wartość na
$scope. - Przebieg podsumowania porównuje każde obserwowane wyrażenie z jego poprzednim wynikiem.
- Każde wyrażenie, którego wartość uległa zmianie, jest renderowane ponownie w tym samym miejscu.
Wyrażenie interpolowane jest zatem jednokierunkowe, od zakresu do widoku. Wymagane jest wiązanie dwukierunkowe. model ngThe Dyrektywy Zaprojektowany do kontroli formularzy. Dodaj <input ng-model="message"> obok nagłówka wpisz coś w polu, a nagłówek będzie się zmieniał po każdym naciśnięciu klawisza, ponieważ ng-model zapisuje wartość pola z powrotem do tej samej właściwości zakresu, którą obserwuje wyrażenie.
Wyrażenia są celowo ograniczone. Odczytują właściwości zakresu, wywołują metody zakresu i tolerują niezdefiniowane wartości w sposób cichy, ale nie mogą deklarować zmiennych, używać instrukcji sterowania przepływem ani docierać do obiektów globalnych, takich jak window.
Jak naprawić pustą stronę lub nierenderowany {{ }}
Pierwszy program AngularJS kończy się niepowodzeniem na jeden z dwóch widocznych sposobów: strona pozostaje pusta lub tekst dosłowny {{message}} Pojawia się tam, gdzie powinien być napis Hello World. Oba oznaczają, że framework nigdy nie przejął znaczników. Wykonaj poniższe sprawdzenia po kolei, mając otwartą konsolę przeglądarki.
- Potwierdź załadowanie biblioteki. Otwórz panel Sieć i poszukaj
angular.jsżądanie. Błąd 404 lub niedostępna sieć CDN pozostawia na ekranie nawiasy klamrowe bez zmian. - Sprawdź ścieżkę skryptu. Ścieżka względna odnosi się do folderu zawierającego plik HTML, więc kopia w
jspotrzeby podfolderówjs/angular.min.js. - Zweryfikuj ng-app. Brak atrybutu lub błędnie napisany atrybut oznacza brak bootstrapu. Atrybut jest łączony łącznikiem jako
ng-appw znacznikach, mimo że dyrektywa jest napisana w stylu camelcase JavaScenariusz. - Przeczytaj błąd konsoli.
[$injector:modulerr]oznacza, że moduł wskazany przez ng-app nigdy nie został zarejestrowany.[ng:areq]zwykle oznacza, że nazwa kontrolera w znaczniku nie pasuje do nazwy przekazanej do.controller(). - Poszukaj drugiej aplikacji ng. Tylko pierwszy element jest bootstrappingowy, więc przypadkowa kopia pozostawiona w elemencie wewnętrznym automatycznie wyłącza tę część strony.
Istnieją jeszcze dwie przyczyny, które tłumaczą większość pozostałych doniesień.
- Protokół pliku. Ten przykład pojedynczego pliku działa poprawnie po otwarciu bezpośrednio z dysku, ale każdy szablon pobrany przez XHR jest blokowany przez reguły pochodzenia przeglądarki. Udostępniaj folder przez HTTP po pojawieniu się szablonów.
- Krótki błysk aparatu ortodontycznego. Gdy znaczniki są renderowane przed skompilowaniem przez framework, surowe wyrażenie jest widoczne przez chwilę. Dodaj
ng-cloakdo elementu lub zamień wyrażenie nang-bind="message", który nigdy nie wyświetla własnych znaczników.
Jeśli żaden z powyższych punktów nie ma zastosowania, zredukuj stronę do podanego wyżej przykładu i dodawaj własny kod linijka po linijce.


