AngularJS-direktiver: ng-init, ng-app, ng-model og ng-repeat
โก Smart oppsummering
AngularJS-direktiver utvider ren HTML med ny oppfรธrsel. Markรธrene ng-app, ng-init, ng-model og ng-repeat bootstrapper en applikasjon, setter lokale data i frรธ, binder skjemakontroller til modellen og kloner elementer รฉn gang per samlingselement.

Hva er Direktiv i AngularJS?
A Direktiv I AngularJS finnes det en kommando som gir HTML ny funksjonalitet. Nรฅr AngularJS gรฅr gjennom HTML-koden, vil den fรธrst finne direktivene pรฅ siden og deretter analysere HTML-siden deretter. Et enkelt eksempel pรฅ et AngularJS-direktiv, som vi har sett i tidligere kapitler, er ยซng-model-direktivetยป. Dette direktivet brukes til รฅ binde datamodellen vรฅr til visningen vรฅr.
OBS: Du kan ha grunnleggende AngularJS-kode pรฅ en HTML-side med direktivene ng-init, ng-repeat og ng-model uten behov for kontrollere. Logikken bak disse direktivene finnes i AngularJS-filen som leveres av GoogleKontrollere er neste nivรฅ av AngularJS-programmeringskonstruksjoner som tillater forretningslogikk, men som nevnt er det ikke obligatorisk รฅ ha en kontroller for at en applikasjon skal vรฆre en AngularJS-applikasjon.
Men hvordan ender en nettleser opp med รฅ kjรธre en?
Hvordan AngularJS-direktiver fungerer i HTML
Som vi definerte i innledningen, er et AngularJS-direktiv en mรฅte รฅ utvide funksjonaliteten til HTMLNรฅr siden lastes inn, gรฅr AngularJS-kompilatoren gjennom DOM-en, matcher hvert element mot de registrerte direktivene og legger til oppfรธrselen den finner.
AngularJS leveres med dusinvis av innebygde direktiver, pluss alle du registrerer selv. De fire som forklares nedenfor med utarbeidede eksempler, ng-app, ng-init, ng-model og ng-repeat, er de nybegynnere mรธter fรธrst. Fรธr disse eksemplene, legg merke til de fire mรฅtene et direktiv kan skrives pรฅ.
Hva er de fire typene AngularJS-direktiver?
Et direktiv er ikke alltid et attributt. AngularJS-kompilatoren kan matche et etter elementnavn, attributt, klassenavn eller kommentar, og hvert direktiv erklรฆrer hvilke former det aksepterer gjennom sin restrict egenskap. Standardinnstillingen er EA, sรฅ bรฅde element- og attributtsyntaks fungerer med mindre du sier noe annet. Verdien er viktigst nรฅr du skriver ditt eget direktiv, fordi kompilatoren ignorerer enhver form som restrict-verdien ekskluderer.
| begrense verdi | Matchet av | Eksempel pรฅ markering | Typisk bruk |
|---|---|---|---|
| E | Elementnavn | Selvstendige blokker som eier en mal | |
| A | Egenskap | Legge til atferd i et eksisterende element | |
| C | Klassenavn | Eldre markup som ikke kan ta nye attributter | |
| M | Kommentar | Sjelden, beholdt for bakoverkompatibilitet |
๐ Tips: Foretrekker element- og attributtsyntaks. Offisiell referanse til AngularJS-direktivet behandler klasse- og kommentarskjemaer som eldre alternativer. Eksemplene nedenfor bruker alle attributtsyntaks.
ng-app i AngularJS
Dette brukes til รฅ initialisere et AngularJS-program. Nรฅr dette direktivet er pรฅ plass pรฅ en HTML-side, forteller det i utgangspunktet AngularJS at denne HTML-siden er et AngularJS-program.
Eksempel pรฅ ng-app
Eksemplet nedenfor viser hvordan du gjรธr et vanlig HTML-program til et AngularJS-program.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app=""> Tutorial Name : {{ "Angular" + "JS"}} </div> </body> </html>
โ ๏ธ Advarsel: Oppfรธringen beholder originalen chrset="UTF 8", nรธyaktig som publisert. Det riktige attributtet er charset="UTF-8".
Code Forklaring:
- Direktivet ยซng-appยป legges til i div-taggen vรฅr for รฅ indikere at dette programmet er et AngularJS-program. Merk at ng-app-direktivet kan brukes pรฅ enhver tag, sรฅ det kan ogsรฅ plasseres i body-taggen.
- Fordi vi har definert denne applikasjonen som en AngularJS-applikasjon, kan vi nรฅ bruke AngularJS-funksjonaliteten. I vรฅrt tilfelle bruker vi uttrykk for รฅ ganske enkelt sammenkoble to strenger.
Hvis koden kjรธres uten problemer, vises resultatet nedenfor.
Utgang:
Utdataene viser tydelig utdataene fra uttrykket, noe som kun ble muliggjort fordi vi definerte applikasjonen som en AngularJS-applikasjon. Det neste direktivet leverer dataene.
ng-init i AngularJS
Dette brukes til รฅ initialisere applikasjonsdata. Noen ganger kan du trenge lokale data for applikasjonen din, og dette kan gjรธres med ng-init-direktivet.
Eksempel pรฅ ng-init
I dette eksemplet skal vi lage en variabel kalt "TutorialName" ved รฅ bruke ng-init-direktivet og vise verdien til den variabelen pรฅ siden.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="TutorialName='Angular JS'"> Tutorial Name : {{ TutorialName}} </div> </body> </html>
Code Forklaring:
- ng-init-direktivet legges til div-taggen vรฅr for รฅ definere en lokal variabel kalt "TutorialName" og verdien gitt til dette er "AngularJS".
- Vi bruker uttrykk i AngularJS for รฅ vise resultatet av variabelnavnet ยซTutorialNameยป som ble definert i ng-init-direktivet vรฅrt.
Hvis koden kjรธres uten problemer, vises resultatet nedenfor.
Utgang:
I utgangen,
- Resultatet viser tydelig resultatet av uttrykket som inneholder strengen "AngularJS". Dette er som et resultat av at strengen "AngularJS" blir tildelt variabelen 'TutorialName' i ng-init-delen.
Det neste direktivet sender data tilbake fra skjermen til modellen.
ng-modell i AngularJS
Og til slutt har vi ng-model-direktivet, som brukes til รฅ binde verdien av en HTML-kontroll til applikasjonsdata.
Eksempel pรฅ ng-modell
I dette eksemplet,
- Vi skal lage 2 variabler kalt "mengde" og "pris". Disse variablene kommer til รฅ vรฆre bundet til 2 tekstinntastingskontroller.
- Vi skal da vise totalbelรธpet basert pรฅ multiplikasjon av bรฅde pris- og kvantitetsverdier.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="quantity=1;price=5"> People : <input type="number" ng-model="quantity"> Registration Price : <input type="number" ng-model="price"> Total : {{quantity * price}} </div> </body> </html>
Code Forklaring:
- ng-init-direktivet legges til vรฅr div-tag for รฅ definere 2 lokale variabler; den ene kalles "kvantitet" og den andre er "pris".
- Nรฅ bruker vi ng-modelldirektivet til รฅ binde tekstboksene "People" og "Registration price" til vรฅre lokale variabler "quantity" og "price" henholdsvis.
- Til slutt viser vi totalen via et uttrykk, som er multiplikasjonen av mengde- og prisvariablene.
Hvis koden kjรธres uten problemer, vises resultatet nedenfor.
Utgang:
- Utgangen viser tydelig multiplikasjonen av verdiene for personer og registreringspris.
Hvis du nรฅ endrer verdien for Personer og Registreringspris i tekstboksene, endres totalen automatisk.
- Resultatet ovenfor viser bare kraften til databinding i AngularJS, som oppnรฅs ved bruk av ng-modell direktiv.
Den siste av de fire hรฅndterer mange verdier samtidig.
ng-gjenta i AngularJS
Dette brukes til รฅ gjenta et HTML-element. Eksemplet nedenfor viser hvordan du bruker ng-gjenta direktiv.
Eksempel pรฅ ng-repetisjon
I dette eksemplet,
- Vi skal ha en rekke kapittelnavn i en matrisevariabel og
- bruk deretter ng-repeat-direktivet for รฅ vise hvert element i matrisen som et listeelement
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="chapters=['Controllers','Models','Filters']"> <ul> <li ng-repeat="names in chapters"> {{names}} </li> </ul> </div> </body> </html>
Code Forklaring:
- ng-init-direktivet legges til vรฅr div-tag for รฅ definere en variabel kalt "kapitler", som er en matrisevariabel som inneholder 3 strenger.
- Elementet ng-repeat brukes ved รฅ deklarere en innebygd variabel kalt "navn" og gรฅ gjennom hvert element i kapittelmatrisen.
- Til slutt viser vi verdien av den lokale innebygde variabelen "navn".
Hvis koden kjรธres uten problemer, vises resultatet nedenfor.
Utgang:
- Utdataene ovenfor viser bare at ng-repeat-direktivet tok hver verdi i matrisen kalt "kapitler" og opprettet HTML-listeelementer for hvert element i matrisen.
Disse fire dekker oppstart, data, binding og repetisjon. Listen nedenfor viser hva som kommer videre.
Andre vanlige innebygde AngularJS-direktiver
De fire direktivene ovenfor er startsettet, ikke hele biblioteket. Hver oppfรธring nedenfor er et attributt som du plasserer direkte pรฅ elementet den kontrollerer.
- ng-bind: Skriver en omfangsverdi inn i et elements tekst uten รฅ kort vise rรฅ parenteser ved lasting.
- ng-hvis: Fjerner elementet fra DOM-en nรฅr uttrykket er usant, og gjenoppbygger det nรฅr det er sant.
- ng-vis og ng-skjul: Togglsynlighet med CSS. Elementet forblir i DOM-en, sรฅ gjentatte vekslinger koster mindre.
- ng-klasse: Legger til eller fjerner CSS-klasser fra et uttrykk, slik at stilen fรธlger modellen.
- ng-klikk: Kjรธrer et uttrykk eller en omfangsfunksjon nรฅr brukeren klikker pรฅ elementet.
- ng-kontroller: Kobler en kontroller til en markupblokk nรฅr siden vokser ut av ng-init.
- ng-deaktivert og ng-skrivebeskyttet: Angi attributtet for samsvarende form nรฅr uttrykket deres er sant.
Vanlige spรธrsmรฅl nedenfor svarer pรฅ spรธrsmรฅlene som oftest fรธlger etter denne listen.









