AngularJS Hello World: Primul tău program exemplu
⚡ Rezumat inteligent
Programele AngularJS Hello World au nevoie doar de un singur fișier HTML, o referință de script și două directive, ng-app și ng-controller, pentru a lega o variabilă de domeniu a controlerului în pagină printr-o expresie între acolade duble.
Cea mai bună modalitate de a vedea puterea unei aplicații AngularJS este să creezi prima ta aplicație de bază, de tipul „Hello World”, în AngularJS.
Există multe medii de dezvoltare integrate pe care le puteți utiliza pentru AngularJS dezvoltare, unele dintre cele mai populare sunt menționate mai jos. În exemplul nostru, folosim Webstorm ca IDE-ul nostru.
- Webstorm
- Sublime Text
- AngularJS Eclipse
- Visual Studio
Bună lume, AngularJS
Notă privind versiunea: AngularJS 1.x a părăsit perioada de suport pe termen lung pe 31 decembrie 2021, iar echipa de framework confirmă acest lucru. Suportul AngularJS s-a încheiat oficial în ianuarie 2022, cu versiunea finală 1.8.3 și fără patch-uri de securitate ulterioare. Fiecare pas și bloc de cod de mai jos este păstrat exact așa cum este scris. Proiectele noi aparțin Angular-ului modern, unde același exercițiu începe cu ng serve și o componentă independentă și încă folosește același {{ }} sintaxa de interpolare.
Exemplul de mai jos arată cel mai simplu mod de a crea prima aplicație „Hello world” în AngularJS.
Captura de ecran adnotată de mai jos etichetează fiecare parte a fișierului respectiv, iar cele șapte numere ale sale corespund cu Code Lista explicațiilor dedesubt. A fost capturată pentru o versiune anterioară 1.4.0, deci linia de script diferă de versiunea fixată în cod.
<!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 Explicaţie:
- "ng-app„Cuvântul cheie” este folosit pentru a indica faptul că această aplicație ar trebui considerată o aplicație AngularJS. Această aplicație poate fi numită cu orice preț.
- Controlerul este cel folosit pentru a păstra logica de business. În eticheta h1, dorim să accesăm controlor, care va avea logica de a afișa „Hello World”, deci putem spune că, în această etichetă, dorim să accesăm controlerul numit „HelloWorldCtrl”.
- Folosim o variabilă membru numită „mesaj”, care nu este altceva decât un substituent pentru a afișa mesajul „Hello World”.
- „Eticheta script” este utilizată pentru a face referire la scriptul angular.js, care are toate funcționalitățile necesare pentru AngularJS. Fără această referință, dacă încercăm să folosim orice funcții AngularJS, acestea nu vor funcționa.
- „Controller” este locul în care creăm de fapt logica noastră de business, adică controllerul nostru. Specificitățile fiecărui cuvânt cheie vor fi explicate în capitolele următoare. Ceea ce este important de reținut este că definim o metodă de controller numită „HelloWorldCtrl”, la care facem referire în Pasul 2.
- Creăm o „funcție” care va fi apelată atunci când codul nostru apelează acest controller. Obiectul $scope este un obiect special în AngularJS, care este un obiect global utilizat în cadrul AngularJS. Obiectul $scope este utilizat pentru a gestiona datele dintre controller și vizualizare.
- Creăm o variabilă membru numită „mesaj”, îi atribuim valoarea „Salut, lume” și atașăm variabila membru obiectului de domeniu.
NOTĂ: Directiva ng-controller este un cuvânt cheie definit în AngularJS (Pasul 2) și este utilizat pentru a defini controlerele în aplicația dvs. Aici, în aplicația noastră, am folosit cuvântul cheie ng-controller pentru a defini un controler numit „HelloWorldCtrl”. Logica propriu-zisă pentru controler va fi creată în (Pasul 5).
Dacă codul este executat cu succes, următoarea ieșire va fi afișată atunci când rulați codul în browser.
ieșire:
Va fi afișat mesajul „Hello World”.
Cum se încarcă AngularJS: CDN sau fișier local
Exemplul de mai sus funcționează deoarece o singură linie introduce framework-ul în pagină înainte ca browserul să ajungă la sfârșitul corpului paginii. AngularJS este livrat ca o singură linie. JavaFișier script, deci un prim program nu necesită niciun pas de compilare și niciun manager de pachete. Un fișier HTML simplu deschis într-un browser este suficient.
Există două modalități de a aduce acel fișier.
- Faceți referință la o copie CDN. Exemplul indică
code.angularjs.orgși fixează versiunea 1.6.9. Gazda respectivă încă deservește versiuni 1.x, cea mai recentă fiind 1.8.2, în timp ce Google Bibliotecile găzduite nu mai listează AngularJS. - Descărcați o copie locală. Salvați fișierul lângă pagina HTML și indicați eticheta scriptului spre acesta. O copie locală menține exemplul în funcțiune offline, ceea ce este important atunci când un proxy blochează CDN-ul.
<!-- 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>
Utilizare angular.js în timp ce învață și angular.min.js în producție: versiunea neminificată imprimă o stivă lizibilă traces, în timp ce versiunea minificată raportează variabile redenumite.
Odată ce fișierul este încărcat, ng-app pornește framework-ul. AngularJS caută acel atribut atunci când documentul se termină de încărcat, tratează elementul care îl conține ca rădăcină de compilare și bootează modulul numit în valoarea sa. Urmează trei consecințe:
- Doar primul
ng-apppe o pagină este bootat automat. Un al doilea este ignorat, cu excepția cazului în careangular.bootstrapeste apelat manual. - Valoarea trebuie să denumească un modul înregistrat cu unghiular.modul, altfel consola raportează
[$injector:modulerr]. - plasare
ng-apppehtmlelementul, așa cum se întâmplă în exemplu, aduce întregul document sub AngularJS; un container mai restrâns funcționează și el.
Cum funcționează expresiile {{ }} și legăturile ng-model
Bretelele duble din jur message din eticheta h1 nu sunt un substituent completat o singură dată la momentul încărcării. AngularJS compilează acel nod de text într-un observator pe mediul înconjurător domeniu, deci rezultatul redat tracks $scope.message atâta timp cât pagina există.
Ciclul se desfășoară în trei etape.
- Controlerul scrie o valoare pe
$scope. - O pasă de digest compară fiecare expresie urmărită cu rezultatul anterior.
- Fiecare expresie a cărei valoare s-a modificat este re-randată la locul ei.
Prin urmare, o expresie interpolată este unidirecțională, de la domeniul de aplicare la vizualizare. Legătura bidirecțională necesită ng-model, directivă conceput pentru controale de formular. Adăugați <input ng-model="message"> Lângă titlu, tastați în casetă, iar titlul se schimbă la fiecare apăsare de tastă, deoarece ng-model scrie valoarea câmpului înapoi pe aceeași proprietate de scop pe care o urmărește expresia.
Expresiile sunt limitate în mod deliberat. Acestea citesc proprietăți de domeniu, apelează metode de domeniu și tolerează valori nedefinite în mod silențios, însă nu pot declara variabile, nu pot utiliza instrucțiuni de control al fluxului sau nu pot accesa obiecte globale, cum ar fi window.
Cum să remediați o pagină goală sau nerandată {{ }}
Un prim program AngularJS eșuează într-unul din două moduri vizibile: pagina rămâne goală sau textul literal {{message}} apare unde ar trebui să fie „Hello World”. Ambele înseamnă că framework-ul nu a preluat niciodată markup-ul. Parcurgeți verificările de mai jos în ordine, cu consola browserului deschisă.
- Confirmați încărcarea bibliotecii. Deschideți panoul Rețea și căutați
angular.jscerere. O eroare 404 sau o rețea CDN inaccesibilă lasă acoladele de pe ecran neatinse. - Verificați calea scriptului. O cale relativă se rezolvă în raport cu folderul care conține fișierul HTML, deci o copie într-un
jsnevoile subfolderuluijs/angular.min.js. - Verificați aplicația ng. Un atribut lipsă sau scris greșit nu înseamnă nimic în bootstraps. Atributul este cratimat ca
ng-appîn markup, chiar dacă directiva este încapsulată în camel-case JavaScenariul. - Citește eroarea consolei.
[$injector:modulerr]înseamnă că modulul numit de ng-app nu a fost niciodată înregistrat.[ng:areq]de obicei înseamnă că numele controlerului din markup nu se potrivește cu numele transmis către.controller(). - Caută o a doua aplicație ng. Doar prima este bootstrapped, așa că o copie rătăcită lăsată pe un element intern dezactivează în mod silențios acea parte a paginii.
Alte două cauze explică majoritatea rapoartelor rămase.
- Protocolul fișierului. Acest exemplu cu un singur fișier rulează fără probleme atunci când este deschis direct de pe disc, dar orice șablon preluat prin XHR este blocat de regulile de origine ale browserului. Serviți folderul prin HTTP odată ce apar șabloanele.
- O scurtă străfulgerare a aparatului dentar. Când markup-ul este redat înainte ca framework-ul să îl compileze, expresia brută este vizibilă pentru o clipă. Adăugați
ng-cloakelementului sau schimbați expresia cung-bind="message", care nu afișează niciodată propriul markup.
Dacă niciuna dintre acestea nu se aplică, reduceți pagina la exemplul de mai sus și adăugați propriul cod înapoi, câte o linie pe rând.


