AngularJS ng-click, ng-show ja ng-hide -ohjeet

โšก ร„lykรคs yhteenveto

AngularJS-tapahtumien avulla verkkosovellus voi reagoida kรคyttรคjรคn syรถtteisiin, kuten hiiren napsautuksiin, nรคppรคinpainalluksiin ja osoittimen pรครคlle asettamiseen. Ng-click-, ng-show- ja ng-hide-direktiivit sitovat tรคmรคn toiminnan deklaratiivisesti merkintรถihin manuaalisten DOM-kuuntelijoiden sijaan.

  • ๐Ÿ–ฑ๏ธ Klikkausten kรคsittely: ng-click liittรครค lausekkeen tai ohjainfunktion elementtiin, useimmiten painikkeeseen.
  • ๐Ÿ‘๏ธ Ehdollinen nรคyttรถ: ng-show renderรถi elementin, kun sen lauseke on tosi, kun taas ng-hide poistaa sen, kun lauseke on tosi.
  • ๐ŸŽจ Mekanismi: Molemmat direktiivit kytkevรคt pรครคlle/pois sisรครคnrakennetun ng-hide CSS-luokan, joka asettaa display-arvoksi none, joten elementti pysyy DOM:ssa.
  • ๐Ÿ”— Laajuussidonta: $scope-muuttujaan sijoitettu jรคsenmuuttuja parantaa nรคkyvyyttรค, ja sen muuttaminen kรคsittelijรคn sisรคllรค pรคivittรครค nรคkymรคn vรคlittรถmรคsti.
  • ๐Ÿ“‹ Direktiivialue: Kahdeksantoista kuuntelijadirektiiviรค kattavat sumennus-, muutos-, tarkennus-, nรคppรคimistรถ-, hiiri-, liitรค- ja lรคhetystapahtumat.
  • โš ๏ธ Tuen tila: AngularJS:n elinkaari pรครคttyi 31. joulukuuta 2021, joten uusien projektien tulisi keskittyรค nykyaikaiseen Angulariin.

AngularJS ng-click ng-nรคytรค ng-piilota direktiivit

AngularJS -tapahtumat

AngularJS -tapahtumat ovat toimintoja, joiden avulla verkkosovellukset voivat olla vuorovaikutuksessa kรคyttรคjรคn syรถtteiden, kuten hiiren napsautusten, nรคppรคimistรถsyรถtteiden ja hiiren osoittimen, kanssa. Verkkosovellusten on kรคsiteltรคvรค tapahtumia tiettyjen tehtรคvien ja toimintojen suorittamiseksi, ja jokainen niistรค kรคynnistyy, kun kรคyttรคjรค suorittaa vastaavan toiminnon.

Verkkosovelluksia luotaessa sovelluksesi joutuu ennemmin tai myรถhemmin kรคsittelemรครคn DOM-tapahtumia, kuten hiiren napsautuksia ja liikkeitรค, nรคppรคimistรถn painalluksia ja muutostapahtumia. angularjs toimittaa direktiivejรค, jotka kรคsittelevรคt nรคitรค tapahtumia deklaratiivisesti.

Jos esimerkiksi sivulla olevan painikkeen tulisi kรคsitellรค jotakin klikattaessa, ng-click-tapahtumadirektiivi tarjoaa kyseisen koukun.

โš ๏ธ Tukitiedote: AngularJS saavutettu kรคyttรถiรคn pรครคttyessรค 31. joulukuuta 2021 eikรค saa enรครค korjauksia tai tietoturvakorjauksia Angular-tiimiltรค. Alla olevat ohjeet pysyvรคt voimassa olemassa olevien AngularJS 1.x -sovellusten yllรคpidossa; uusiin tรถihin kรคytรค moderneja Kulma-, jossa nรคmรค direktiivit korvataan tapahtumasidonnoilla, kuten (click) ja *ngIf.

Mikรค on ng-click-direktiivi AngularJS:ssรค?

"ng-click direktiivi" AngularJS:ssรค kรคytetรครคn mukautettua toimintaa, kun HTML-elementtiรค napsautetaan. Sitรค kรคytetรครคn yleensรค painikkeissa, koska ne ovat yleisin paikka liittรครค napsautusvastauksia, ja sitรค kรคytetรครคn myรถs hรคlytysten luomiseen napsautuksesta.

ng-clickin syntaksi AngularJS:ssรค

<element
 ng-click="expression">
</element>

Esimerkki ng-clickista AngularJS:ssรค

Tรคssรค ng-click-esimerkissรค laskurimuuttuja kasvaa joka kerta, kun kรคyttรคjรค napsauttaa painiketta.

ng-click direktiivi AngularJS:ssรค

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Event Registration</title>
</head>
<body ng-app="">

<script src="https://code.angularjs.org/1.8.3/angular.js"></script>

<h1>Guru99 Global Event</h1>

<button ng-click="count = count + 1" ng-init="count=0">
    Increment
</button>

<div>The Current Count is {{count}}</div>

</body>
</html>

Code Selitys:

  1. ng-init-direktiivi asettaa paikallisen muuttujan count on 0.
  2. Painikkeen ng-click-kรคsky kasvattaa arvoa count yhdellรค jokaisella klikkauksella.
  3. Interpolointi {{count}} nรคyttรครค kรคyttรคjรคlle nykyisen arvon.

lรคhtรถ:

ng-klikkaa AngularJS:ssรค

Nรคyttรถรถn tulee Lisรครค-painike ja laskuri on aluksi nolla. Sitรค napsauttamalla arvo kasvaa, kuten alla olevassa kuvassa nรคkyy.

ng-klikkaa AngularJS:ssรค

Mikรค on ng-show-direktiivi AngularJS:ssรค?

ng-show-direktiivi nรคyttรครค tai piilottaa tietyn HTML elementti, joka perustuu ng-show-attribuutille annettuun lausekkeeseen. Sisรคisesti elementti nรคytetรครคn tai piilotetaan poistamalla tai lisรครคmรคllรค .ng-hide CSS-luokka, ennalta mรครคritetty luokka, joka asettaa display ettรค none.

ng-shown syntaksi AngularJS:ssรค

<element
 ng-show="expression">
</element>

Esimerkki ng-showsta AngularJS:ssรค

Tรคssรค esimerkissรค kรคytetรครคn ng-show-funktiota piilotetun elementin paljastamiseen.

ng-show direktiivi AngularJS:ssรค

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.8.3/angular.js"></script>

<h1>Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
    <input type="button" value="Show Angular" ng-click="ShowHide()"/>

    <br><br><div ng-show="IsVisible">Angular</div>
</div>

<script type="text/javascript">

    var app = angular.module('DemoApp', []);

    app.controller('DemoController', function($scope) {
        $scope.IsVisible = false;

        $scope.ShowHide = function() {
            $scope.IsVisible = true;
        };
    });
</script>

</body>
</html>

Code Selitys:

  1. Painikkeen ng-click-kรคsky viittaa a:han ShowHide ohjaimessa mรครคritelty toiminto DemoController.
  2. ng-show-attribuutti on liitetty div-elementtiin, joka sisรคltรครค tekstin Angular. Tรคmรคn elementin nรคkyvyyttรค hallitaan.
  3. Ohjaimessa IsVisible jรคsenmuuttuja sijoitetaan scope-objektiin ja alustetaan muotoon false, joten div-elementti piilotetaan sivun latautuessa ensimmรคisen kerran. ng-show-funktiolla arvo totta nรคyttรครค elementin ja vรครคrรค piilottaa sen.
  4. ShowHide funktiojoukot IsVisible arvoksi true, jotta div-elementti tulee nรคkyviin.

lรคhtรถ:

ng-show direktiivi AngularJS:ssรค

Tekstiรค sisรคltรคvรครค div-elementtiรค ei nรคytetรค aluksi, koska IsVisible alkaa epรคtosina. Napsauttaminen Nรคytรค Angular asettaa sen arvoksi true ja teksti tulee nรคkyviin.

ng-show direktiivi AngularJS:ssรค

Mikรค on ng-hide-direktiivi AngularJS:ssรค?

ng-hide -direktiivi piilottaa elementin, kun sen lauseke on TOSI, ja nรคyttรครค elementin, kun lauseke on EPร„TOSI โ€“ ng-show'n tรคydellinen kรครคnteisvaikutus. Sisรคisesti se kรคyttรครค samaa .ng-hide CSS-luokka.

Sanan ng-hide syntaksi AngularJS:ssรค

<element
 ng-hide="expression">
</element>

Esimerkki ng-hidesta AngularJS:ssรค

Tรคmรค esimerkki peilaa ng-show-esimerkkiรค, joten kahta direktiiviรค voidaan verrata suoraan.

ng-hide direktiivi AngularJS:ssรค

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.8.3/angular.js"></script>

<h1>Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
    <input type="button" value="Hide Angular" ng-click="ShowHide()"/>

    <br><br><div ng-hide="IsVisible">Angular</div>
</div>

<script type="text/javascript">

    var app = angular.module('DemoApp', []);

    app.controller('DemoController', function($scope) {
        $scope.IsVisible = false;

        $scope.ShowHide = function() {
            $scope.IsVisible = true;
        };
    });
</script>

</body>
</html>

Code Selitys:

  1. Painikkeen ng-click-kรคsky viittaa ShowHide toiminto DemoController.
  2. ng-hide attribuutti on liitetty div-elementtiin, joka sisรคltรครค tekstin Angular.
  3. IsVisible on alustettu falseKoska tรคmรค on ng-hide eikรค ng-show, false-arvo tarkoittaa, ettรค div on nรคkyvรค kun sivu latautuu ensimmรคisen kerran.
  4. ShowHide funktiojoukot IsVisible arvoksi true, joka piilottaa div-merkin.

lรคhtรถ:

ng-hide direktiivi AngularJS:ssรค

Div-elementti nรคytetรครคn aluksi, koska ng-hide-funktiolle annetaan false. Piilota Angular pitรครค paikkansa ja sana katoaa.

ng-hide direktiivi AngularJS:ssรค

ng-show vs ng-hide vs ng-if: Keskeiset erot

Kolme direktiiviรค ohjaavat, nรคkeekรถ kรคyttรคjรค elementin, ja niiden vรคlillรค valitseminen vaikuttaa sekรค toimintaan ettรค renderรถinnin suorituskykyyn. Kaksi ensimmรคistรค vain vaihtavat CSS-luokkaa, joten elementti on aina sivulla; kolmas lisรครค ja poistaa itse elementin.

Aspect ng-show ng-hide ng-if
Elementti nรคkyy, kun Ilmaus on totta Lauseke on epรคtosi Ilmaus on totta
DOM-elementti Aina Aina Vain silloin kun se on totta
Kรคytetty menetelmรค Toggles .ng-hide-luokka Toggles .ng-hide-luokka Luo ja tuhoaa elementin
Lapsilaajuus Jakaa pรครคlaajuuden Jakaa pรครคlaajuuden Luo uuden alilaajuusalueen
Piilossa olevat tarkkailijat Yhรค aktiivinen Yhรค aktiivinen poistettu
Parasta Kevyen sisรคllรถn usein pรครคlle/pois kytkeminen Kรครคnteiset olosuhteet Raskasta sisรคltรถรค nรคytetรครคn harvoin

Kรคytรค ng-show- tai ng-hide-kรคskyรค, kun elementti vaihtuu usein, koska elementtiรค ei koskaan rakenneta uudelleen ja vaihtuminen maksaa vain luokanvaihdoksen. Kรคytรค ng-if-kรคskyรค kalliille osioille, joita nรคytetรครคn harvoin, koska elementin poistaminen poistaa myรถs sen tarkkailijat ja vรคhentรครค tiivisteiden kustannuksia jokaisella syklillรค.

AngularJS-tapahtumanseurantaohjeet

Voit lisรคtรค AngularJS-tapahtumakuuntelijoita HTML-elementteihin kรคyttรคmรคllรค yhtรค tai useampaa nรคistรค direktiivien:

  • ng-blur
  • ng-muutos
  • ng-klikkaa
  • ng-kopio
  • ng-leikattu
  • ng-dblclick
  • ng-focus
  • ng-keydown
  • ng-nรคppรคinpainallus
  • ng-keyup
  • ng-mousedown
  • ng-mouseenter
  • ng-mouseleave
  • ng-mousemove
  • ng-mouseover
  • ng-mouseup
  • ng-pasta
  • ng-submit

Jokainen direktiivi hyvรคksyy lausekkeen, ja raaka selaintapahtuma on saatavilla sen sisรคllรค muodossa $event kun kรคsittelijรค tarvitsee tietoja, kuten painetun nรคppรคimen tai klikkauksen koordinaatit.

UKK

Ohita varattu $event muuttuja, kuten ng-click="handle($event)"Ohjain vastaanottaa sitten natiivin tapahtuman ja voi lukea kohteen, koordinaatit tai kutsua preventDefault-funktiota.

ng-repeat luo lapsialueen jokaista kohdetta kohden, joten kรคsittelijรคn sisรคllรค olevan primitiivin mรครคrittรคminen pรคivittรครค vain kyseisen lapsen. Kirjoita pรครคalueen objektiominaisuuteen tai kรคytรค $parent, jotta muutos nรคkyy ulospรคin.

Osittain. AI tyรถkalut muuntavat ng-clickin muotoon (click) ja ng-show'hun *ngIf luotettavasti, mutta laajuusriippuvainen logiikka ja kaksisuuntaiset sidokset vaativat manuaalisen tarkistuksen, koska AngularJS-laajuusalueella ei ole suoraa Angular-vastinetta.

Tekoรคlyavustajat havaitsevat tavanomaiset syyt nopeasti: puuttuvan ng-sovelluksen, ohjaimen nimen, joka ei vastaa moduulin rekisterรถintiรค, tai kirjoitusvirheen direktiiviattribuutissa. Ehdotettu korjaus vaatii vielรค testausta selaimessa.

Ei. AngularJS tarjoaa vain ng-show-, ng-hide- ja ng-if-kรคskyt. Ng-visible-direktiiviรค ei ole, ja siihen viittaaminen ei tuota mitรครคn vaikutusta, koska AngularJS jรคttรครค huomiotta tunnistamattomat attribuutit.

Tiivistรค tรคmรค viesti seuraavasti: