AngularJS Hello World: Az első példaprogramod
⚡ Okos összefoglaló
Az AngularJS Hello World programoknak mindössze egyetlen HTML fájlra, egy szkripthivatkozásra és két direktívára, az ng-app-ra és az ng-controller-re van szükségük ahhoz, hogy egy vezérlő hatókör-változóját egy dupla zárójeles kifejezésen keresztül az oldalhoz kössék.

Az AngularJS alkalmazások erejét úgy láthatod a legjobban, ha elkészíted az első alapvető programodat, a „Hello World” alkalmazást AngularJS-ben.
Számos integrált fejlesztői környezet létezik, amelyeket használhatsz AngularJS fejlesztés, néhány népszerűt az alábbiakban említünk. Példánkban a következőt használjuk: Webstorm mint a mi IDE-nk.
- Webstorm
- Sublime Text
- AngularJS Eclipse
- Visual Studio
Helló világ, AngularJS
Verzió megjegyzés: Az AngularJS 1.x 2021. december 31-én kilépett a hosszú távú támogatásból, és a keretrendszer csapata megerősítette ezt. Az AngularJS támogatása hivatalosan megszűnt 2022 januárjában, az 1.8.3-as végleges kiadással, és utána nem voltak biztonsági javítások. Minden lépés és kódblokk pontosan úgy marad meg, ahogyan meg van írva. Az új projektek a modern Angularban találhatók, ahol ugyanaz a gyakorlat a következővel kezdődik: ng serve és egy önálló komponens és még mindig ugyanazt használja {{ }} interpolációs szintaxis.
Az alábbi példa bemutatja az első „Hello world” alkalmazás létrehozásának legegyszerűbb módját az AngularJS-ben.
Az alábbi, jegyzetekkel ellátott képernyőképen a fájl minden egyes része fel van címkézve, és a hét szám megegyezik a fájllal. Code Magyarázó lista alább. Egy korábbi 1.4.0-s verzióhoz készült, így a szkript sora eltér a kódban rögzített verziótól.
<!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 Magyarázat:
- Azng-appA „” kulcsszó azt jelzi, hogy ezt az alkalmazást AngularJS alkalmazásnak kell tekinteni. Bármilyen nevet adhatunk neki.
- A vezérlő az üzleti logika tárolására szolgál. A h1 tagben a következőket szeretnénk elérni: ellenőr, amelynek logikája a „Hello World” megjelenítésére szolgál, tehát azt mondhatjuk, hogy ebben a címkében a „HelloWorldCtrl” nevű vezérlőt szeretnénk elérni.
- Egy „message” nevű tagváltozót használunk, amely nem más, mint egy helyőrző a „Hello World” üzenet megjelenítéséhez.
- A „script tag” az angular.js szkriptre hivatkozik, amely az AngularJS összes szükséges funkciójával rendelkezik. E hivatkozás nélkül, ha megpróbálunk bármilyen AngularJS függvényt használni, az nem fog működni.
- A „vezérlő” az a hely, ahol valójában az üzleti logikánkat, azaz a vezérlőnket hozzuk létre. Az egyes kulcsszavak részleteit a következő fejezetekben ismertetjük. Fontos megjegyezni, hogy egy „HelloWorldCtrl” nevű vezérlőmetódust definiálunk, amelyre a 2. lépésben hivatkozunk.
- Létrehozunk egy „függvényt”, amelyet akkor fogunk meghívni, amikor a kódunk meghívja ezt a vezérlőt. A $scope objektum egy speciális objektum az AngularJS-ben, amely egy globális objektum, amelyet az AngularJS-en belül használnak. A $scope objektum a vezérlő és a nézet közötti adatok kezelésére szolgál.
- Létrehozunk egy „message” nevű tagváltozót, hozzárendeljük a „Hello World” értéket, és a tagváltozót a scope objektumhoz csatoljuk.
JEGYZET: Az ng-controller direktíva egy kulcsszó, amely a következőben van definiálva AngularJS (2. lépés) és az alkalmazásban vezérlők definiálására szolgál. Itt az alkalmazásunkban az ng-controller kulcsszót használtuk egy 'HelloWorldCtrl' nevű vezérlő definiálásához. A vezérlő tényleges logikája az (5. lépés)-ben jön létre.
Ha a kód sikeresen lefut, a következő kimenet jelenik meg, amikor futtatja a kódot a böngészőben.
output:
Megjelenik a „Hello World” üzenet.
AngularJS betöltése: CDN vagy helyi fájl
A fenti példa azért működik, mert egyetlen sor húzza be a keretrendszert az oldalba, mielőtt a böngésző elérné a törzs végét. Az AngularJS egyetlen sorként érkezik. JavaSzkriptfájl, így egy első programhoz nincs szükség fordítási lépésre és csomagkezelőre. Egy böngészőben megnyitott sima HTML fájl elegendő.
Kétféleképpen lehet behozni a fájlt.
- Hivatkozzon egy CDN-példányra. A példa arra mutat,
code.angularjs.orgés az 1.6.9-es verziót pineli. Ez a gép továbbra is kiszolgálja az 1.x buildeket, a legmagasabb az 1.8.2, míg Google A Hosted Libraries már nem listázza az AngularJS-t. - Tölts le egy helyi másolatot. Mentsd el a fájlt a HTML-oldal mellé, és irányítsd rá a szkriptcímkét. Egy helyi másolat offline is működteti a példát, ami akkor fontos, ha egy proxy blokkolja a CDN-t.
<!-- 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>
Felhasználás angular.js tanulás közben és angular.min.js éles környezetben: a minimálatlan build olvasható veremként nyomtat traces, míg a miniatűr build jelentések átnevezték a változókat.
Miután a fájl betöltődik, ng-app elindítja a keretrendszert. Az AngularJS ezt az attribútumot keresi, amikor a dokumentum befejezte a betöltést, az azt tartalmazó elemet fordítási gyökérként kezeli, és elindítja az értékében megnevezett modult. Három következmény következik:
- Csak az első
ng-appegy oldalon automatikusan bootstrappel történik. Egy másodikat figyelmen kívül hagy a rendszer, kivéve, haangular.bootstrapmanuálisan hívják. - Az értéknek egy regisztrált modult kell megneveznie angular.module, egyébként a konzol jelentései
[$injector:modulerr]. - forgalomba
ng-appahtmlelem, ahogy a példa is teszi, az egész dokumentumot AngularJS alá vonja; egy szűkebb konténer is működik.
Hogyan működnek a {{ }} kifejezések és az ng-modell kötés
A dupla fogszabályozó körül message a h1 tagben nem helyőrzők, amelyeket egyszer töltenek ki betöltéskor. Az AngularJS ezt a szövegcsomópontot egy figyelővé fordítja a környező csomóponton. hatálya, így a renderelt kimenet tracks $scope.message amíg az oldal él.
A ciklus három lépésben fut.
- A vezérlő értéket ír be
$scope. - Egy kivonatoló művelet minden megfigyelt kifejezést összehasonlít az előző eredményével.
- Minden olyan kifejezés, amelynek értéke megváltozott, újra megjelenik a helyén.
Egy interpolált kifejezés tehát egyirányú, a hatókörből a nézetbe. Kétirányú kötésre van szükség. ng-modell, a Irányelv űrlapvezérlőkhöz tervezve. Hozzáadás <input ng-model="message"> A címsor melletti mezőbe írj be valamit, és a címsor minden billentyűleütésre megváltozik, mivel az ng-model a mező értékét visszaírja ugyanarra a hatókör tulajdonságra, amelyet a kifejezés figyel.
A kifejezések szándékosan korlátozottak. Hatókör-tulajdonságokat olvasnak, hatókör-metódusokat hívnak meg és csendben tolerálják a nem definiált értékeket, de nem deklarálhatnak változókat, nem használhatnak vezérlőfolyamat-utasításokat vagy nem érhetnek el globális objektumokat, például window.
Üres oldal vagy nem renderelt {{ }} hiba javítása
Egy első AngularJS program két látható módon hibásodhat meg: az oldal üres marad, vagy a literál szövege {{message}} megjelenik ott, ahol a Hello World-nek kellene lennie. Mindkettő azt jelenti, hogy a keretrendszer soha nem vette át a jelölőnyelvet. Nyissa meg a böngésző konzolját, és végezze el sorban az alábbi ellenőrzéseket.
- Erősítse meg a könyvtár betöltését. Nyissa meg a Hálózat panelt, és keresse meg a
angular.jskérés. Egy 404-es hiba vagy egy elérhetetlen CDN érintetlenül hagyja a képernyőn megjelenő fogszabályozót. - Ellenőrizd a szkript elérési útját. A relatív elérési út a HTML-fájlt tartalmazó mappához viszonyítva oldódik fel, tehát egy másolat egy
jsalmappák igényeijs/angular.min.js. - Ellenőrizze az ng-app-ot. Egy hiányzó vagy elgépelt attribútum semmit sem jelent bootstraps rendszerben. Az attribútum kötőjellel van elválasztva, mint
ng-appa jelölésben, annak ellenére, hogy az irányelv teve alakúra van húzva JavaForgatókönyv. - Olvasd el a konzolhibát.
[$injector:modulerr]azt jelenti, hogy az ng-app által megnevezett modul soha nem volt regisztrálva.[ng:areq]általában azt jelenti, hogy a vezérlő neve a kódban nem egyezik meg a felhasználónak átadott névvel..controller(). - Keress egy második ng-appot. Csak az első bootstrappeléssel történik, így egy belső elemen hagyott kóbor másolat csendben letiltja az oldal ezen részét.
A fennmaradó jelentések nagy részét további két ok magyarázza.
- A fájlprotokoll. Ez az egyfájlos példa jól fut, ha közvetlenül a lemezről nyitjuk meg, de az XHR-en keresztül lekért sablonokat a böngésző eredetszabályai blokkolják. A mappa HTTP-n keresztüli kiszolgálása a sablonok megjelenése után.
- Egy rövid villanás a fogszabályozóról. Amikor a jelölés a keretrendszer lefordítása előtt megjelenik, a nyers kifejezés egy pillanatra látható.
ng-cloakaz elemhez, vagy cserélje ki a kifejezést erre:ng-bind="message", amely soha nem jeleníti meg a saját jelölőkódját.
Ha ezek egyike sem alkalmazható, akkor egyszerűsítsd az oldalt a fenti példára, és soronként add hozzá a saját kódodat.


