Mikä on mukautettu direktiivi?
Angular Js: n mukautettu direktiivi on käyttäjän määrittelemä direktiivi, jolla on haluamasi toiminnot. Vaikka AngularJS: llä on paljon tehokkaita direktiivejä laatikosta, joskus vaaditaan mukautettuja direktiivejä.
Tässä opetusohjelmassa opit-
- Kuinka luoda oma direktiivi?
- AngularJs-direktiivit ja soveltamisalat
- Ohjainten käyttö direktiivien kanssa
- Kuinka luoda uudelleenkäytettäviä direktiivejä
- AngularJS-direktiivit ja komponentit - ng-transclude
- Sisäkkäiset direktiivit
- Tapahtumien käsittely direktiivissä
Kuinka luoda oma direktiivi?
Katsotaanpa esimerkki siitä, miten voimme luoda mukautetun direktiivin.
Mukautettu direktiivi tapauksessamme yksinkertaisesti ruiskuttaa div-tagin, jossa on teksti "AngularJS Tutorial" sivullamme, kun direktiiviä kutsutaan.
Event Registration Guru99 Global Event
Koodin selitys:
- Luomme ensin moduulin kulmasovelluksellemme. Tätä tarvitaan mukautetun direktiivin luomiseen, koska direktiivi luodaan tätä moduulia käyttämällä.
- Luomme nyt mukautetun direktiivin nimeltä "ngGuru" ja määrittelemme funktion, jolla on mukautettu koodi direktiivillemme.
Huomautus:-
Huomaa, että määritellessämme direktiiviä olemme määrittäneet sen ngGuruksi ja kirjaimella 'G' isolla kirjaimella. Ja kun käytämme sitä div-tagistamme direktiivinä, käytämme sitä ng-guruna. Näin kulmikas ymmärtää sovelluksessa määritetyt mukautetut direktiivit. Ensinnäkin mukautetun direktiivin nimen tulisi alkaa kirjaimilla 'ng'. Toiseksi väliviiva - - tulisi mainita vain kutsuttaessa direktiiviä. Kolmanneksi ensimmäinen kirjain, joka seuraa kirjaimia ng, määriteltäessä direktiiviä, voi olla joko pieni tai iso kirjain.
- Käytämme malliparametria, jonka Angular määrittelee parametriksi mukautetuille direktiiveille. Tässä määritämme, että aina kun tätä direktiiviä käytetään, käytä vain mallin arvoa ja lisää se kutsukoodiin.
- Tässä käytämme nyt räätälöityä "ng-guru" -direktiiviämme. Kun teemme tämän, arvo "määritimme mallillemme" Angular JS Tutorial"syötetään nyt tähän.
Jos koodi suoritetaan onnistuneesti, seuraava tulos näkyy, kun suoritat koodin selaimessa.
Tuotos:
- Yllä oleva lähtö osoittaa selvästi, että mukautettu ng-guru-direktiivimme, jonka malli on määritetty mukautetun tekstin näyttämistä varten, näkyy selaimessa.
AngularJs-direktiivit ja soveltamisalat
Laajuus määritellään liimana, joka sitoo ohjaimen näkymään hallitsemalla näkymän ja ohjaimen välistä dataa.
Kun luot mukautettuja AngularJs-direktiivejä, niillä on oletusarvoisesti pääsy pääohjaimen laajuusobjektiin.
Tällä tavalla mukautetun direktiivin on helppoa hyödyntää pääohjaimelle välitettäviä tietoja.
Katsotaanpa esimerkkiä siitä, miten voimme käyttää vanhemman ohjaimen laajuutta mukautetussa direktiivissä.
Event Registration Guru99 Global Event
Koodin selitys:
- Luomme ensin ohjaimen nimeltä "DemoController". Tässä määritellään muuttuja nimeltä tutorialName ja liitetään se laajuusobjektiin yhdessä lauseessa - $ scope.tutorialName = "AngularJS".
- Mukautetussa direktiivissä voimme kutsua muuttujaa "tutorialName" käyttämällä lauseketta. Tämä muuttuja olisi käytettävissä, koska se on määritelty ohjaimessa "DemoController", josta tulee tämän direktiivin vanhempi.
- Viitamme ohjaimen div-tagiin, joka toimii vanhempana div-tagina. Huomaa, että tämä on tehtävä ensin, jotta mukautettu direktiivi pääsisi muuttujaan tutorialName.
- Kiinnitämme vihdoin vain mukautetun direktiivin "ng-guru" div-tagiimme.
Jos koodi suoritetaan onnistuneesti, seuraava tulos näkyy, kun suoritat koodin selaimessa.
Tuotos:
- Yllä oleva lähtö osoittaa selvästi, että mukautettu direktiivimme "ng-guru" käyttää pääohjaimessa olevaa laajuusmuuttujaa tutorialName.
Ohjainten käyttö direktiivien kanssa
Kulma antaa mahdollisuuden käyttää ohjaimen jäsenmuuttujaa suoraan mukautetuista direktiiveistä ilman laajuusobjektin tarvetta.
Tämä on välttämätöntä ajoittain, koska sovelluksessa voi olla useita laajuusobjekteja, jotka kuuluvat useisiin ohjaimiin.
Joten on suuri mahdollisuus, että voit tehdä virheen päästäksesi väärän ohjaimen laajuusobjektiin.
Tällaisissa tilanteissa on tapa mainita direktiivissä nimenomaisesti sanomalla "Haluan käyttää tätä erityistä rekisterinpitäjää".
Katsotaanpa esimerkki siitä, miten voimme saavuttaa tämän.
Event Registration Guru99 Global Event
Koodin selitys:
- Luomme ensin ohjaimen nimeltä "DemoController". Tässä määritellään muuttuja nimeltä "tutorialName" ja tällä kertaa sen sijaan, että kiinnitämme sen laajuusobjektiin, liitämme sen suoraan ohjaimeen.
- Mukautetussa direktiivissämme mainitsemme nimenomaisesti, että haluamme käyttää ohjainta "DemoController" käyttämällä ohjaimen parametrien avainsanaa.
- Luomme viitteen ohjaimeen parametrilla "controllerAs". Tämän määrittelee kulma, ja se on tapa viitata ohjaimeen referenssinä.
Huomaa: - On mahdollista käyttää useita ohjaimia direktiivissä määrittelemällä vastaavat ohjaimen lohkot, controllerA: t ja mallilausekkeet.
- Lopuksi mallissamme käytämme vaiheessa 3 luotua viittausta ja jäsenmuuttujaa, joka liitettiin suoraan ohjaimeen vaiheessa 1.
Jos koodi suoritetaan onnistuneesti, seuraava tulos näkyy, kun suoritat koodin selaimessa.
Tuotos:
Tulos osoittaa selvästi, että mukautettu direktiivi käyttää erityisesti DemoController-ohjelmaa ja siihen liitettyä jäsenmuuttujaa tutorialName ja näyttää tekstin "Kulma".
Kuinka luoda uudelleenkäytettäviä direktiivejä
Näimme jo mukautettujen direktiivien voiman, mutta voimme viedä sen seuraavalle tasolle rakentamalla omat uudelleenkäytettävät direktiivimme.
Sanotaan esimerkiksi, että halusimme injektoida koodia, joka näyttää alla olevat HTML-tunnisteet aina useilla näytöillä, mikä on pohjimmiltaan vain syöttö käyttäjän "Nimi" ja "Ikä".
Jos haluat käyttää tätä toimintoa uudelleen useilla näytöillä koodaamatta joka kerta, luomme kulmasuunnassa pääohjauksen tai -käskyn, jolla pidetään näitä säätimiä ("käyttäjän nimi" ja "ikä").
Joten nyt sen sijaan, että kirjoittaisimme saman koodin alla olevalle näytölle joka kerta, voimme todella upottaa tämän koodin direktiiviin ja upottaa sen milloin tahansa.
Katsotaanpa esimerkki siitä, miten voimme saavuttaa tämän.
Event Registration Guru99 Global Event
Koodin selitys:
- Mukautetun direktiivin koodinpätkässä muutos on vain arvo, joka annetaan mukautetun direktiivin malliparametrille.
Suunnitelman viiden tunnisteen tai tekstin sijaan syötämme tosiasiallisesti "2" - ja "ikä" -nimisen 2 syötesäätimen osan, joka on näytettävä sivullamme.
Jos koodi suoritetaan onnistuneesti, seuraava tulos näkyy, kun suoritat koodin selaimessa.
Tuotos:
Edellä olevasta lähdöstä voimme nähdä, että mukautetun direktiivin mallin koodinpätkä lisätään sivulle.
AngularJS-direktiivit ja komponentit - ng-transclude
Kuten jo aiemmin mainitsimme, Angularin on tarkoitus laajentaa HTML: n toiminnallisuutta. Ja olemme jo nähneet, kuinka voimme saada koodin injektoinnin käyttämällä mukautettuja uudelleenkäytettäviä direktiivejä.
Mutta nykyaikaisessa verkkosovelluskehityksessä on myös käsite verkkokomponenttien kehittämisestä. Mikä tarkoittaa periaatteessa omien HTML-tunnisteiden luomista, joita voidaan käyttää komponentteina koodissamme.
Siksi kulma tarjoaa toisen tason voimaa HTML-tunnisteiden laajentamiseen antamalla kyvyn pistää määritteitä itse HTML-tunnisteisiin.
Tämän tekee " ng-transclude " -tunniste, joka on eräänlainen asetus kertomaan kulmikkaalle kaappaamaan kaikki, mikä on direktiivin sisällä merkinnässä.
Otetaan esimerkki siitä, miten voimme saavuttaa tämän.
Event Registration Guru99 Global Event
Angular JS
Koodin selitys:
- Käytämme direktiiviä määrittelemään mukautetun HTML-tagin, jonka nimi on "pane", ja lisäämällä toiminto, joka laittaa jonkin mukautetun koodin tälle tagille. Lähdössä mukautetun ruudun tagi näyttää tekstin "AngularJS" suorakulmiossa, jossa on yhtenäinen musta reunus.
- "Transclude" -attribuutti on mainittava tosi, jota kulma vaatii, jotta tämä tagi voidaan lisätä DOM: iimme.
- Laajuudessa määritämme otsikkomääritteen. Attribuutit määritellään yleensä nimi / arvo-pareiksi, kuten: nimi = "arvo". Meidän tapauksessamme ruudun HTML-tagissamme olevan attribuutin nimi on "title". "@" -Symboli on vaatimus kulmasta. Tämä tehdään niin, että kun rivin otsikko = {{title}} suoritetaan vaiheessa 5, otsikkomääritteen mukautettu koodi lisätään ruudun HTML-tagiin.
- Otsikkomääritteiden mukautettu koodi, joka vain piirtää kiinteän mustan reunan hallintaan.
- Lopuksi kutsumme mukautettua HTML-tagia yhdessä määritetyn otsikkomääritteen kanssa.
Jos koodi suoritetaan onnistuneesti, seuraava tulos näkyy, kun suoritat koodin selaimessa.
Tuotos:
- Lähtö osoittaa selvästi, että ruudun html5 -tunnisteen otsikkomääritteeksi on asetettu "Kulma.JS" mukautettu arvo.
Sisäkkäiset direktiivit
Kulmalliset direktiivit voidaan sisäkkäin. Kuten sisäiset moduulit tai toiminnot millä tahansa ohjelmointikielellä, saatat joutua upottamaan direktiivejä toisiinsa.
Voit saada paremman käsityksen tästä näkemällä alla oleva esimerkki.
Tässä esimerkissä luomme kaksi direktiiviä nimeltä "ulompi" ja "sisempi".
- Sisempi direktiivi näyttää tekstin nimeltä "Sisempi".
- Vaikka ulompi direktiivi todella kehottaa sisäistä direktiiviä näyttämään tekstin nimeltä "Sisempi".
Guru99 Global Event