AngularJS-direktiv: ng-init, ng-app, ng-model & ng-repeat
Vad รคr Direktiv i AngularJS?
A Direktiv i AngularJS รคr ett kommando som ger HTML ny funktionalitet. Nรคr Angular gรฅr igenom HTML-koden kommer den fรถrst att hitta direktiven pรฅ sidan och sedan analysera HTML-sidan dรคrefter. Ett enkelt exempel pรฅ ett AngularJS-direktiv, som vi har sett i tidigare kapitel รคr "ng-modelldirektivet". Detta direktiv anvรคnds fรถr att binda vรฅr datamodell till vรฅr uppfattning.
Obs: Du kan ha grundlรคggande vinkelkod i en HTML-sida med direktiven ng-init, ng-repeat och ng-model utan att behรถva ha Controllers. Logiken fรถr dessa direktiv finns i filen Angular.js som tillhandahรฅlls av Google. Styrenheter รคr nรคsta nivรฅs vinkelprogrammeringskonstruktioner som tillรฅter affรคrslogik, men som nรคmnts fรถr att en applikation ska vara en vinkelapplikation รคr det inte obligatoriskt att ha en styrenhet.
Hur man skapar direktiv i AngularJS
Som vi definierade i inledningen รคr AngularJS-direktiven ett sรคtt att utรถka funktionaliteten av html.
Det finns 4 direktiv definierade i AngularJS.
Nedan รคr listan รถver AngularJS-direktiven tillsammans med exempel fรถr att fรถrklara var och en av dem.
ng-app i AngularJS
Detta anvรคnds fรถr att initiera en Angular.JS-applikation. Nรคr detta direktiv finns pรฅ en HTML-sida sรคger det i princip till Angular att denna HTML-sida รคr en angular.js-applikation.
Exempel pรฅ np-app
Exemplet nedan visar hur du anvรคnder ng-app-direktivet. I det hรคr exemplet ska vi helt enkelt visa hur man gรถr en normal HTML-applikation till en angularJS-applikation.
<!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>
Kodfรถrklaring:
- Direktivet "ng-app" lรคggs till i vรฅr div-tagg fรถr att indikera att denna applikation รคr en angular.js-applikation. Observera att ng-app-direktivet kan appliceras pรฅ vilken tagg som helst, sรฅ det kan ocksรฅ sรคttas i body-taggen.
- Eftersom vi har definierat den hรคr applikationen som en angular.js-applikation kan vi nu anvรคnda funktionen angular.js. I vรฅrt fall anvรคnder vi uttryck fรถr att helt enkelt sammanfoga 2 strรคngar.
Om koden exekveras framgรฅngsrikt kommer fรถljande utdata att visas nรคr du kรถr din kod i webblรคsaren.
Produktion:
Utdata visar tydligt utdata frรฅn uttrycket, vilket endast mรถjliggjordes eftersom vi definierade applikationen som en angularjs-applikation.
ng-init i AngularJS
Detta anvรคnds fรถr att initiera applikationsdata. Ibland kan du behรถva lite lokal data fรถr din applikation, detta kan gรถras med ng-init-direktivet.
Exempel pรฅ ng-init
Exemplet nedan visar hur man anvรคnder ng-init-direktivet.
I det hรคr exemplet kommer vi att skapa en variabel som heter "TutorialName" med ng-init-direktivet och visa vรคrdet fรถr den variabeln pรฅ sidan.
<!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>
Kodfรถrklaring:
- Direktivet ng-init lรคggs till i vรฅr div-tagg fรถr att definiera en lokal variabel som heter "TutorialName" och vรคrdet som ges till detta รคr "AngularJS".
- Vi anvรคnder uttryck i AngularJs fรถr att visa utdata frรฅn variabelnamnet "TutorialName" som definierades i vรฅrt ng-init-direktiv.
Om koden exekveras framgรฅngsrikt kommer fรถljande utdata att visas nรคr du kรถr din kod i webblรคsaren.
Produktion:
I utgรฅngen,
- Resultatet visar tydligt resultatet av uttrycket som innehรฅller strรคngen "AngularJS". Detta รคr som ett resultat av att strรคngen "AngularJS" tilldelas variabeln 'TutorialName' i ng-init-sektionen.
ng-modell i AngularJS
Och slutligen har vi ng-modelldirektivet, som anvรคnds fรถr att binda vรคrdet av en HTML-kontroll till applikationsdata. Exemplet nedan visar hur man anvรคnder ng-modelldirektivet.
Exempel pรฅ ng-modell
I detta exempel,
- Vi kommer att skapa 2 variabler som kallas "kvantitet" och "pris". Dessa variabler kommer att vara bundna till 2 textinmatningskontroller.
- Vi kommer sedan att visa det totala beloppet baserat pรฅ multiplikationen av bรฅde pris- och kvantitetsvรคrden.
<!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>
Kodfรถrklaring:
- Direktivet ng-init lรคggs till i vรฅr div-tagg fรถr att definiera 2 lokala variabler; en kallas "kvantitet" och den andra รคr "pris".
- Nu anvรคnder vi ng-modelldirektivet fรถr att binda textrutorna "People" och "Registration price" till vรฅra lokala variabler "kvantitet" respektive "pris".
- Slutligen visar vi totalen via ett uttryck, vilket รคr multiplikationen av kvantitets- och prisvariablerna.
Om koden exekveras framgรฅngsrikt kommer fรถljande utdata att visas nรคr du kรถr din kod i webblรคsaren.
Produktion:
- Resultatet visar tydligt multiplikationen av vรคrdena fรถr personer och registreringspris.
Om du nu gรฅr till textrutorna och รคndrar vรคrdet pรฅ priset fรถr personer och registrering, kommer summan automatiskt att รคndras.
- Ovanstรฅende utdata visar bara kraften i databindning i angularJs, vilket uppnรฅs med anvรคndning av ng-modelldirektivet.
ng-upprepa i AngularJS
Detta anvรคnds fรถr att upprepa ett HTML-element. Exemplet nedan visar hur du anvรคnder ng-upprepa direktiv.
Exempel pรฅ ng-repeat
I detta exempel,
- Vi kommer att ha en array av kapitelnamn i en arrayvariabel och
- anvรคnd sedan direktivet ng-repeat fรถr att visa varje element i arrayen som ett listobjekt
<!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>
Kodfรถrklaring:
- ng-init-direktivet lรคggs till i vรฅr div-tagg fรถr att definiera en variabel som heter "chapters" som รคr en arrayvariabel som innehรฅller 3 strรคngar.
- Elementet ng-repeat anvรคnds genom att deklarera en inline-variabel som kallas "namn" och gรฅ igenom varje element i kapitelmatrisen.
- Slutligen visar vi vรคrdet pรฅ den lokala inline-variabeln "namn".
Om koden exekveras framgรฅngsrikt kommer fรถljande utdata att visas nรคr du kรถr din kod i webblรคsaren.
Produktion:
- Ovanstรฅende utdata visar bara att ng-repeat-direktivet tog varje vรคrde i arrayen som kallas "kapitel" och skapade HTML-listobjekt fรถr varje objekt i arrayen.
Sammanfattning
- Direktiv anvรคnds fรถr att utรถka funktionaliteten hos HTML. Angular tillhandahรฅller inbyggda direktiv som t.ex
- ng-app โ Detta anvรคnds fรถr att initiera en vinkelapplikation.
- ng-init โ Detta anvรคnds fรถr att skapa applikationsvariabler
- ng-modell โ Detta anvรคnds fรถr att binda HTML-kontroller till programdata
- ng-repeat โ Anvรคnds fรถr att upprepa element med vinkel.









