AngularJS-direktiivit: ng-init, ng-app, ng-model ja ng-repeat
โก รlykรคs yhteenveto
AngularJS-direktiivit laajentavat tavallista HTML:รครค uusilla toiminnoilla. ng-app-, ng-init-, ng-model- ja ng-repeat-markkerit kรคynnistรคvรคt sovelluksen, syรถttรคvรคt paikallisia tietoja, sitovat lomakekomponentit malliin ja kloonaavat elementtejรค kerran kokoelman kohdetta kohden.

Mikรค on AngularJS:n direktiivi?
A Direktiivi AngularJS:ssรค on komento, joka antaa HTML:lle uusia toimintoja. Kun AngularJS kรคy lรคpi HTML-koodia, se ensin lรถytรครค sivulta direktiivit ja jรคsentรครค sitten HTML-sivun niiden mukaisesti. Yksinkertainen esimerkki AngularJS-direktiivistรค, jonka olemme nรคhneet aiemmissa luvuissa, on "ng-model-direktiivi". Tรคtรค direktiiviรค kรคytetรครคn datamallin sitomiseen nรคkymรครคn.
Huomautus: Voit luoda HTML-sivulle perus-AngularJS-koodia ng-init-, ng-repeat- ja ng-model-direktiiveillรค ilman ohjaimia. Nรคiden direktiivien logiikka on AngularJS-tiedostossa, jonka tarjoaa GoogleOhjaimet ovat seuraavan tason AngularJS-ohjelmointirakenteita, jotka mahdollistavat liiketoimintalogiikan, mutta kuten mainittiin, sovelluksen ei tarvitse vรคlttรคmรคttรค olla ohjainta, jotta se olisi AngularJS-sovellus.
Mutta miten selain pรครคtyy kรคyttรคmรครคn sellaista?
Miten AngularJS-direktiivit toimivat HTML:ssรค
Kuten johdannossa mรครคrittelimme, AngularJS-direktiivi on tapa laajentaa funktion toiminnallisuutta HTMLKun sivu latautuu, AngularJS-kรครคntรคjรค kรคy lรคpi DOM:n, vertaa kutakin elementtiรค rekisterรถityihin direktiiveihin ja liittรครค lรถytรคmรคnsรค toiminnan.
angularjs sisรคltรครค kymmeniรค sisรครคnrakennettuja direktiivejรค, sekรค kaikki itse rekisterรถimรคsi direktiivit. Aloittelijat kohtaavat ensin neljรค alla selitettyรค esimerkkidirektiiviรค โ ng-app, ng-init, ng-model ja ng-repeat. Ennen nรคitรค esimerkkejรค on syytรค tutustua neljรครคn tapaan, joilla direktiivi voidaan kirjoittaa.
Mitkรค ovat neljรค AngularJS-direktiivien tyyppiรค?
Direktiivi ei aina ole attribuutti. AngularJS-kรครคntรคjรค voi lรถytรครค vastaavan elementin nimen, attribuutin, luokan nimen tai kommentin perusteella, ja jokainen direktiivi mรครคrittelee, mitkรค muodot se hyvรคksyy sen kautta. restrict ominaisuus. Oletusarvo on EA, joten sekรค elementti- ettรค attribuuttisyntaksi toimivat, ellet toisin mรครคrรครค. Arvo on tรคrkein, kun kirjoitat oman direktiivin, koska kรครคntรคjรค jรคttรครค huomiotta kaikki lomakkeet, jotka rajoitusarvo sulkee pois.
| raja-arvo | Vastaava | Esimerkki merkinnรคstรค | Tyypillinen kรคyttรถ |
|---|---|---|---|
| E | Elementin nimi | Itsenรคiset lohkot, joilla on mallipohja | |
| A | Ominaisuus | Kรคyttรคytymisen lisรครคminen olemassa olevaan elementtiin | |
| C | Luokan nimi | Vanhat merkinnรคt, jotka eivรคt voi ottaa uusia mรครคritteitรค kรคyttรถรถn | |
| M | Kommentti | Harvinainen, sรคilytetty taaksepรคin yhteensopivuuden vuoksi |
๐ก Vinkki: Suosi elementtien ja attribuuttien syntaksia. virallinen AngularJS-direktiivin viite kรคsittelee luokka- ja kommenttilomakkeita perinteisinรค vaihtoehtoina. Alla olevat esimerkit kรคyttรคvรคt kaikki attribuuttisyntaksia.
ng-app AngularJS:ssรค
Tรคtรค kรคytetรครคn AngularJS-sovelluksen alustamiseen. Kun tรคmรค direktiivi on kรคytรถssรค HTML-sivulla, se kertoo AngularJS:lle, ettรค kyseinen HTML-sivu on AngularJS-sovellus.
Esimerkki ng-sovelluksesta
Alla oleva esimerkki nรคyttรครค, kuinka tavallisesta HTML-sovelluksesta tehdรครคn AngularJS-sovellus.
<!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>
โ ๏ธ Varoitus: Listaus sรคilyttรครค alkuperรคisen chrset="UTF 8", tรคsmรคlleen julkaistussa muodossa. Oikea attribuutti on charset="UTF-8".
Code Selitys:
- โng-appโ-direktiivi lisรคtรครคn div-tagiimme osoittamaan, ettรค kyseessรค on AngularJS-sovellus. Huomaa, ettรค ng-app-direktiiviรค voidaan soveltaa mihin tahansa tagiin, joten se voidaan sijoittaa myรถs body-tagiin.
- Koska olemme mรครคritelleet tรคmรคn sovelluksen AngularJS-sovellukseksi, voimme nyt hyรถdyntรครค AngularJS-toiminnallisuutta. Tรคssรค tapauksessa kรคytรคmme lausekkeita yksinkertaisesti kahden merkkijonon yhdistรคmiseen.
Jos koodi suoritetaan onnistuneesti, alla oleva tuloste tulee nรคkyviin.
lรคhtรถ:
Tuloste nรคyttรครค lausekkeen tulosteen selvรคsti, mikรค oli mahdollista vain siksi, ettรค mรครคrittelimme sovelluksen AngularJS-sovellukseksi. Seuraava direktiivi toimittaa sen tiedot.
ng-init AngularJS:ssรค
Tรคtรค kรคytetรครคn sovellustietojen alustamiseen. Joskus sovelluksesi saattaa tarvita paikallisia tietoja, ja tรคmรค voidaan tehdรค ng-init-direktiivillรค.
Esimerkki ng-initistรค
Tรคssรค esimerkissรค aiomme luoda muuttujan nimeltรค "TutorialName" kรคyttรคmรคllรค ng-init-direktiiviรค ja nรคytรคmme tรคmรคn muuttujan arvon sivulla.
<!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 Selitys:
- ng-init-direktiivi lisรคtรครคn div-tunnisteeseemme paikallisen muuttujan "TutorialName" mรครคrittรคmiseksi, ja tรคlle annettu arvo on "AngularJS".
- Kรคytรคmme AngularJS:ssรค lausekkeita nรคyttรครคksemme ng-init-direktiivissรค mรครคritellyn muuttujan "TutorialName" tulosteen.
Jos koodi suoritetaan onnistuneesti, alla oleva tuloste tulee nรคkyviin.
lรคhtรถ:
Ulostulossa,
- Tulos nรคyttรครค selkeรคsti lausekkeen, joka sisรคltรครค merkkijonon "AngularJS", tulos. Tรคmรค johtuu siitรค, ettรค merkkijono "AngularJS" on mรครคritetty muuttujaan "TutorialName" ng-init-osassa.
Seuraava direktiivi lรคhettรครค tiedot nรคytรถltรค takaisin malliin.
ng-malli AngularJS:ssรค
Ja lopuksi meillรค on ng-model-direktiivi, jota kรคytetรครคn HTML-kontrollin arvon sitomiseen sovellustietoihin.
Esimerkki ng-mallista
Tรคssรค esimerkissรค
- Aiomme luoda 2 muuttujaa nimeltรค "mรครคrรค" ja "hinta". Nรคmรค muuttujat sidotaan kahteen tekstinsyรถttรถsรครคtimeen.
- Nรคytรคmme sitten kokonaissumman, joka perustuu sekรค hinta- ettรค mรครคrรคarvojen kertomiseen.
<!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 Selitys:
- ng-init-direktiivi lisรคtรครคn div-tunnisteeseen mรครคrittelemรครคn 2 paikallista muuttujaa; yksi on nimeltรครคn "mรครคrรค" ja toinen on "hinta".
- Nyt kรคytรคmme ng-mallin direktiiviรค sitomaan tekstilaatikot "Ihmiset" ja "Rekisterรถintihinta" paikallisiin muuttujiimme "mรครคrรค" ja "hinta".
- Lopuksi nรคytรคmme kokonaissumman lausekkeen kautta, joka on mรครคrรค- ja hintamuuttujien kertolasku.
Jos koodi suoritetaan onnistuneesti, alla oleva tuloste tulee nรคkyviin.
lรคhtรถ:
- Tulos nรคyttรครค selvรคsti ihmisten ja rekisterรถintihinnan arvojen kertoimen.
Jos nyt muutat tekstiruutujen Henkilรถmรครคrรค- ja Rekisterรถintihinta-arvoja, Kokonaissumma muuttuu automaattisesti.
- Yllรค oleva tuloste osoittaa AngularJS:n datasidonnan tehokkuuden, joka saavutetaan kรคyttรคmรคllรค ng-mallin direktiivi.
Viimeinen neljรคstรค kรคsittelee useita arvoja samanaikaisesti.
ng-repeat AngularJS:ssรค
Tรคtรค kรคytetรครคn HTML-elementin toistamiseen. Alla oleva esimerkki nรคyttรครค kuinka kรคyttรครค ng-repeat direktiivi.
Esimerkki ng-toistosta
Tรคssรค esimerkissรค
- Meillรค on joukko lukujen nimiรค taulukon muuttujassa ja
- Kรคytรค sitten ng-repeat-direktiiviรค nรคyttรครคksesi jokaisen taulukon elementin luettelokohteena
<!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 Selitys:
- ng-init-direktiivi lisรคtรครคn div-tunnisteeseemme mรครคrittelemรครคn muuttuja nimeltรค "chapters", joka on 3 merkkijonoa sisรคltรคvรค taulukkomuuttuja.
- ng-repeat -elementtiรค kรคytetรครคn ilmoittamalla rivimuuttuja nimeltรค "names" ja kรคymรคllรค lรคpi jokainen elementti lukutaulukossa.
- Lopuksi nรคytรคmme paikallisen rivimuuttujan 'names' arvon.
Jos koodi suoritetaan onnistuneesti, alla oleva tuloste tulee nรคkyviin.
lรคhtรถ:
- Yllรค oleva tulos osoittaa vain, ettรค ng-repeat-direktiivi otti jokaisen taulukon arvon, jota kutsutaan "luvuiksi", ja loi HTML-luettelokohteet jokaiselle taulukon kohteelle.
Nuo neljรค kattavat kรคynnistyksen, datan, sidonnan ja toiston. Alla oleva lista nรคyttรครค, mitรค seuraavaksi tapahtuu.
Muita yleisesti kรคytettyjรค sisรครคnrakennettuja AngularJS-direktiivejรค
Yllรค olevat neljรค direktiiviรค ovat lรคhtรถjoukko, eivรคt koko kirjastoa. Jokainen alla oleva merkintรค on attribuutti, jonka sijoitat suoraan sen ohjaamaan elementtiin.
- ng-sidonta: Kirjoittaa laajuusarvon elementin tekstiin nรคyttรคmรคttรค lyhyesti raakoja aaltosulkeita latauksen yhteydessรค.
- ng-if: Poistaa elementin DOM:sta, kun sen lauseke on epรคtosi, ja luo sen uudelleen, kun se on tosi.
- ng-nรคytรค ja ng-piilota: Togglnรคkyvyys CSS:n avulla. Elementti pysyy DOM:ssa, joten toistuvat vaihdot maksavat vรคhemmรคn.
- ng-luokka: Lisรครค tai poistaa CSS-luokkia lausekkeesta, jolloin tyyli seuraa mallia.
- ng-klikkaus: Suorittaa lausekkeen tai vaikutusaluefunktion, kun kรคyttรคjรค napsauttaa elementtiรค.
- ng-ohjain: Liittรครค ohjaimen merkintรคlohkoon, kun sivu on ng-init-lohkon ulkopuolella.
- ng-poistettu kรคytรถstรค ja ng-vain lukeminen: Aseta vastaava lomakeattribuutti aina, kun niiden lauseke on tosi.
Alla olevat usein kysytyt kysymykset vastaavat useimmin tรคtรค luetteloa seuraaviin kysymyksiin.









