AngularJS Hello World: Váš první ukázkový program
⚡ Chytré shrnutí
Programy AngularJS Hello World potřebují pouze jeden HTML soubor, jeden odkaz na skript a dvě direktivy, ng-app a ng-controller, k navázání proměnné rozsahu kontroleru na stránku pomocí výrazu s dvojitou závorkou.

Nejlepším způsobem, jak vidět sílu aplikace AngularJS, je vytvořit si v AngularJS svou první základní aplikaci s názvem „Hello World“.
Existuje mnoho integrovaných vývojových prostředí, která můžete použít pro AngularJS vývoj, některé z populárních jsou uvedeny níže. V našem příkladu používáme Webstorm jako naše IDE.
- Webstorm
- Sublime Text
- AngularJS Eclipse
- Visual Studio
Ahoj světe, AngularJS
Poznámka k verzi: AngularJS 1.x ukončil dlouhodobou podporu k 31. prosinci 2021 a tým frameworku to potvrzuje. Podpora AngularJS oficiálně ukončena v lednu 2022, s finální verzí 1.8.3 a bez dalších bezpečnostních záplat. Každý krok a blok kódu níže je zachován přesně tak, jak je napsán. Nové projekty patří do moderního Angularu, kde stejné cvičení začíná s ng serve a samostatná komponenta a stále používá totéž {{ }} syntaxe interpolace.
Níže uvedený příklad ukazuje nejjednodušší způsob, jak vytvořit svou první aplikaci „Hello world“ v AngularJS.
Níže uvedený snímek obrazovky s anotací označuje každou část daného souboru a jejích sedm čísel odpovídá Code Seznam vysvětlení níže. Byl zachycen v rámci dřívější verze 1.4.0, takže jeho skript se liší od verze uvedené v kódu.
<!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 Vysvětlení:
- "ng-appKlíčové slovo „“ se používá k označení, že tato aplikace by měla být považována za aplikaci AngularJS. Této aplikaci lze dát libovolný název.
- Kontroler je to, co se používá k uchovávání obchodní logiky. V tagu h1 chceme přistupovat k kontrolor, který bude mít logiku pro zobrazení „Hello World“, takže můžeme říct, že v tomto tagu chceme přistupovat k kontroleru s názvem „HelloWorldCtrl“.
- Používáme členskou proměnnou nazvanou „zpráva“, která není ničím jiným než zástupným symbolem pro zobrazení zprávy „Ahoj světe“.
- Značka „script“ se používá k odkazování na skript angular.js, který má všechny potřebné funkce pro AngularJS. Bez této reference, pokud se pokusíme použít jakékoli funkce AngularJS, nebudou fungovat.
- „Controller“ je místo, kde ve skutečnosti vytváříme naši obchodní logiku, tedy náš controller. Specifika každého klíčového slova budou vysvětlena v následujících kapitolách. Důležité je poznamenat, že definujeme metodu controlleru s názvem „HelloWorldCtrl“, na kterou se odkazuje v kroku 2.
- Vytváříme „funkci“, která bude volána, když náš kód zavolá tento kontroleru. Objekt $scope je speciální objekt v AngularJS, což je globální objekt používaný v AngularJS. Objekt $scope se používá ke správě dat mezi kontrolerem a zobrazením.
- Vytváříme členskou proměnnou s názvem „message“, přiřazujeme jí hodnotu „Hello World“ a připojujeme členskou proměnnou k objektu scope.
POZNÁMKA: Direktiva ng-controller je klíčové slovo definované v AngularJS (Krok 2) a používá se k definování kontrolérů ve vaší aplikaci. V naší aplikaci jsme pomocí klíčového slova ng-controller definovali kontrolér s názvem „HelloWorldCtrl“. Samotná logika pro kontrolér bude vytvořena v (Kroku 5).
Pokud je kód úspěšně spuštěn, při spuštění kódu v prohlížeči se zobrazí následující výstup.
Výstup:
Zobrazí se zpráva 'Hello World'.
Jak načíst AngularJS: CDN nebo lokální soubor
Výše uvedený příklad funguje, protože jeden řádek vtáhne framework do stránky ještě předtím, než prohlížeč dosáhne konce těla kódu. AngularJS se dodává jako jeden JavaSoubor skriptu, takže první program nepotřebuje žádný krok sestavení ani správce balíčků. Stačí obyčejný soubor HTML otevřený v prohlížeči.
Existují dva způsoby, jak ten soubor přenést.
- Odkaz na kopii CDN. Příklad ukazuje na
code.angularjs.orga používá verzi 1.6.9. Tento hosting stále nabízí buildy 1.x, přičemž nejvyšší je 1.8.2, zatímco Google Hostované knihovny již neuvádějí AngularJS. - Stáhněte si lokální kopii. Uložte soubor vedle HTML stránky a nasměrujte na něj tag skriptu. Lokální kopie udržuje příklad v provozu offline, což je důležité, když proxy blokuje 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>
Použijte angular.js při učení a angular.min.js v produkčním prostředí: neminifikovaná sestava vytiskne čitelný zásobník traces, zatímco minifikované sestavení hlásí přejmenované proměnné.
Jakmile je soubor načten, ng-app spustí framework. AngularJS vyhledá tento atribut po dokončení načítání dokumentu, považuje prvek, který jej obsahuje, za kořen kompilace a nabootuje modul uvedený v jeho hodnotě. Z toho plynou tři důsledky:
- Pouze první
ng-appna stránce se automaticky zavede. Druhý se ignoruje, pokudangular.bootstrapse volá ručně. - Hodnota musí pojmenovat modul registrovaný u angular.module, jinak konzole hlásí
[$injector:modulerr]. - Umístění
ng-appnahtmlElement, jak je uvedeno v příkladu, přesune celý dokument pod AngularJS; užší kontejner také funguje.
Jak fungují výrazy {{ }} a vazba ng-modelu
Dvojité rovnátka kolem message v tagu h1 nejsou zástupným symbolem, který se vyplní jednou při načítání. AngularJS zkompiluje tento textový uzel do watcheru na okolním rozsah, takže vykreslený výstup tracks $scope.message dokud stránka žije.
Cyklus probíhá ve třech krocích.
- Řídicí jednotka zapíše hodnotu na
$scope. - Souhrnný průchod (Digest Pass) porovnává každý sledovaný výraz s jeho předchozím výsledkem.
- Každý výraz, jehož hodnota se změnila, se znovu vykreslí na místě.
Interpolovaný výraz je proto jednosměrný, z oboru platnosti do zobrazení. Obousměrná vazba vyžaduje ng-modelse Směrnice určené pro ovládací prvky formuláře. Přidat <input ng-model="message"> Vedle záhlaví zadejte do pole text a záhlaví se změní s každým stisknutím klávesy, protože ng-model zapíše hodnotu pole zpět do stejné vlastnosti rozsahu, kterou výraz sleduje.
Výrazy jsou záměrně omezeny. Čtou vlastnosti rozsahu platnosti, volají metody rozsahu platnosti a tiše tolerují nedefinované hodnoty, ale nemohou deklarovat proměnné, používat příkazy control flow ani dosahovat globálních objektů, jako například window.
Jak opravit prázdnou stránku nebo nevykreslený {{ }}
První program v AngularJS selže jedním ze dvou viditelných způsobů: stránka zůstane prázdná nebo se zobrazí doslovný text. {{message}} se zobrazí tam, kde by mělo být Hello World. Obojí znamená, že framework nikdy nepřevzal kód. Proveďte níže uvedené kontroly v daném pořadí s otevřenou konzolí prohlížeče.
- Potvrďte načtení knihovny. Otevřete panel Síť a vyhledejte
angular.jspožadavek. Chyba 404 nebo nedostupná CDN ponechá závorky na obrazovce nedotčené. - Zkontrolujte cestu skriptu. Relativní cesta se rozpoznává ve složce, která obsahuje soubor HTML, takže kopie v
jspotřeby podsložkyjs/angular.min.js. - Ověřte aplikaci ng. Chybějící nebo chybně napsaný atribut neznamená nic pro bootstrapy. Atribut je rozdělen pomlčkou jako
ng-appv markupu, i když je direktiva v něm uvedena ve velkém formátu (camel case) JavaSkript. - Přečtěte si chybu konzole.
[$injector:modulerr]znamená, že modul pojmenovaný ng-app nebyl nikdy zaregistrován.[ng:areq]obvykle znamená, že název kontroleru v kódu neodpovídá názvu předanému.controller(). - Hledejte druhou ng-app. Pouze první je bootstrapovaný, takže volná kopie ponechaná na vnitřním elementu tiše deaktivuje danou část stránky.
Většinu zbývajících zpráv vysvětlují dvě další příčiny.
- Protokol souboru. Tento příklad s jedním souborem běží bez problémů při přímém otevření z disku, ale jakákoli šablona načtená přes XHR je blokována pravidly prohlížeče. Jakmile se šablony zobrazí, složku obsloužíte přes HTTP.
- Krátký záblesk rovnátka. Když se kód vykreslí předtím, než ho framework zkompiluje, je nezpracovaný výraz na chvíli viditelný.
ng-cloakk prvku nebo zaměnit výraz zang-bind="message", který nikdy nezobrazuje vlastní značky.
Pokud se nic z toho netýká, zredukujte stránku na výše uvedený příklad a postupně přidávejte vlastní kód.


