Direttive AngularJS ng-click, ng-show e ng-hide

โšก Riepilogo intelligente

Gli eventi di AngularJS consentono a un'applicazione web di rispondere agli input dell'utente, come clic del mouse, pressione dei tasti e azioni al passaggio del mouse. Direttive come ng-click, ng-show e ng-hide definiscono tale comportamento in modo dichiarativo nel markup, anzichรฉ tramite listener DOM manuali.

  • ๐Ÿ–ฑ๏ธ Gestione dei clic: ng-click associa un'espressione o una funzione di controllo a un elemento, piรน comunemente un pulsante.
  • ๐Ÿ‘๏ธ Visualizzazione condizionale: ng-show visualizza un elemento quando la sua espressione รจ vera, mentre ng-hide lo rimuove quando l'espressione รจ vera.
  • ๐ŸŽจ Meccanismo: Entrambe le direttive attivano/disattivano la classe CSS integrata ng-hide, che imposta la proprietร  display su none, in modo che l'elemento rimanga nel DOM.
  • ๐Ÿ”— Ambito di applicazione: Una variabile membro posizionata su $scope controlla la visibilitร  e la sua modifica all'interno di un gestore aggiorna immediatamente la vista.
  • ๐Ÿ“‹ Ambito di applicazione della direttiva: Diciotto direttive di ascolto riguardano gli eventi di sfocatura, modifica, messa a fuoco, tastiera, mouse, incolla e invio.
  • โš ๏ธ Stato del supporto: Il supporto per AngularJS รจ terminato il 31 dicembre 2021, pertanto i nuovi progetti dovrebbero puntare alle versioni piรน recenti di Angular.

Direttive AngularJS ng-click ng-show ng-hide

Eventi AngularJS

Eventi AngularJS Gli eventi sono le funzionalitร  che consentono alle applicazioni web di interagire con gli input dell'utente, come i clic del mouse, l'input da tastiera e il passaggio del mouse. Nelle applicazioni web รจ necessario gestire gli eventi per eseguire attivitร  e azioni specifiche, e ciascuno di essi viene attivato quando l'utente esegue l'azione corrispondente.

Quando si creano applicazioni web, prima o poi รจ necessario gestire eventi del DOM come clic e movimenti del mouse, pressione dei tasti della tastiera ed eventi di modifica. AngularJS fornisce direttive che gestiscono questi eventi in modo dichiarativo.

Ad esempio, se un pulsante sulla pagina deve elaborare qualcosa quando viene cliccato, la direttiva evento ng-click fornisce questo aggancio.

โš ๏ธ Avviso di assistenza: AngularJS ha raggiunto Fine della vita il 31 dicembre 2021 e non riceve ulteriori patch o correzioni di sicurezza dal team di Angular. Le direttive seguenti rimangono valide per la manutenzione delle applicazioni AngularJS 1.x esistenti; per i nuovi progetti, utilizzare le versioni moderne. Angular, dove queste direttive vengono sostituite da associazioni di eventi come (click) e *ngIf.

Cos'รจ la direttiva ng-click in AngularJS?

Migliori โ€œdirettiva ng-clickโ€ In AngularJS, viene applicato un comportamento personalizzato quando si fa clic su un elemento HTML. Viene normalmente utilizzato sui pulsanti, poichรฉ sono il punto piรน comune in cui associare risposte al clic, e viene anche utilizzato per visualizzare avvisi al clic.

Sintassi di ng-click in AngularJS

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

Esempio di ng-click in AngularJS

In questo esempio di ng-click, una variabile contatore viene incrementata ogni volta che l'utente fa clic su un pulsante.

Direttiva ng-click in AngularJS

<!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 Spiegazione:

  1. La direttiva ng-init imposta la variabile locale count a 0.
  2. La direttiva ng-click sul pulsante incrementa count di 1 ad ogni clic.
  3. L'interpolazione {{count}} mostra il valore corrente all'utente.

Produzione:

ng-clic in AngularJS

Il pulsante "Incrementa" viene visualizzato e il conteggio inizialmente รจ zero. Cliccandoci sopra, il valore viene incrementato, come mostrato nell'immagine sottostante.

ng-clic in AngularJS

Cos'รจ la direttiva ng-show in AngularJS?

Migliori Direttiva ng-show mostra o nasconde un dato HTML elemento basato sull'espressione fornita all'attributo ng-show. Internamente l'elemento viene mostrato o nascosto rimuovendo o aggiungendo l'espressione. .ng-hide Classe CSS, una classe predefinita che imposta display a none.

Sintassi di ng-show in AngularJS

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

Esempio di ng-show in AngularJS

Questo esempio utilizza ng-show per mostrare un elemento nascosto.

Direttiva ng-show in AngularJS

<!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 Spiegazione:

  1. La direttiva ng-click sul pulsante fa riferimento a ShowHide funzione definita nel controller DemoController.
  2. L'attributo ng-show รจ associato al div contenente il testo Angular. Questo รจ l'elemento di cui viene controllata la visibilitร .
  3. Nel controller, il IsVisible La variabile membro viene posizionata sull'oggetto scope e inizializzata a false, quindi il div รจ nascosto al primo caricamento della pagina. Con ng-show, un valore di vero visualizza l'elemento e falso lo nasconde.
  4. Migliori ShowHide insiemi di funzioni IsVisible impostandolo su true in modo che il div diventi visibile.

Produzione:

Direttiva ng-show in AngularJS

Il div che contiene il testo non viene mostrato inizialmente, perchรฉ IsVisible inizia come falso. Cliccando Mostra Angular Impostandolo su true, il testo diventa visibile.

Direttiva ng-show in AngularJS

Cos'รจ la direttiva ng-hide in AngularJS?

Migliori direttiva ng-hide nasconde un elemento quando la sua espressione restituisce TRUE e mostra l'elemento quando l'espressione รจ FALSE, l'esatto inverso di ng-show. Internamente utilizza lo stesso .ng-hide Classe CSS.

Sintassi di ng-hide in AngularJS

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

Esempio di ng-hide in AngularJS

Questo esempio rispecchia l'esempio di ng-show, in modo che le due direttive possano essere confrontate direttamente.

Direttiva ng-hide in AngularJS

<!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 Spiegazione:

  1. La direttiva ng-click sul pulsante fa riferimento a ShowHide funzione in DemoController.
  2. Migliori ng-hide L'attributo รจ associato al div contenente il testo Angular.
  3. IsVisible viene inizializzato a falsePoichรฉ si tratta di ng-hide anzichรฉ di ng-show, un valore false significa che il div รจ visibile al primo caricamento della pagina.
  4. Migliori ShowHide insiemi di funzioni IsVisible a vero, che nasconde il div.

Produzione:

Direttiva ng-hide in AngularJS

Il div viene mostrato inizialmente perchรฉ a ng-hide viene passato false. Cliccando Nascondi Angular passa vero e la parola scompare.

Direttiva ng-hide in AngularJS

ng-show vs ng-hide vs ng-if: differenze chiave

Tre direttive controllano se l'utente vede un elemento e la scelta tra di esse influisce sia sul comportamento che sulle prestazioni di rendering. Le prime due si limitano ad attivare/disattivare una classe CSS, quindi l'elemento รจ sempre presente nella pagina; la terza aggiunge e rimuove l'elemento stesso.

Aspetto ng-mostra ng-hide ng-se
Elemento visibile quando L'espressione รจ vera L'espressione รจ falsa L'espressione รจ vera
Elemento nel DOM Sempre Sempre Solo finchรฉ รจ vero
Metodo utilizzato Toggles .ng-hide class Toggles .ng-hide class Crea e distrugge l'elemento
ambito infantile Condivide l'ambito padre Condivide l'ambito padre Crea un nuovo ambito figlio
Osservatori quando sono nascosti Ancora attivo Ancora attivo rimosso
migliori per Commutazione frequente del contenuto luminoso Condizioni invertite I contenuti pesanti vengono mostrati raramente

Utilizza `ng-show` o `ng-hide` quando un elemento viene visualizzato/nascosto frequentemente, poichรฉ l'elemento non viene mai ricostruito e la visualizzazione/nascondimento comporta solo un cambio di classe. Utilizza `ng-if` per le sezioni che richiedono molte risorse e vengono visualizzate raramente, poichรฉ la rimozione dell'elemento rimuove anche i suoi osservatori e riduce il costo di digest a ogni ciclo.

Direttive del listener di eventi AngularJS

รˆ possibile aggiungere listener di eventi AngularJS agli elementi HTML utilizzando uno o piรน di questi direttive:

  • ng-sfocatura
  • ng-cambiamento
  • ng-clic
  • ng-copia
  • ng-cut
  • ng-dblclick
  • ng-focus
  • ng-keydown
  • ng-pressione dei tasti
  • ng-keyup
  • ng-mousedown
  • ng-mouseenter
  • ng-mouseave
  • ng-mousemove
  • ng-mouseover
  • ng-mouseup
  • ng-paste
  • ng-invia

Ogni direttiva accetta un'espressione e l'evento del browser grezzo รจ disponibile al suo interno come $event quando il gestore ha bisogno di dettagli come il tasto premuto o le coordinate del clic.

DOMANDE FREQUENTI

Passare il riservato $event variabile, come in ng-click="handle($event)"Il controller riceve quindi l'evento nativo e puรฒ leggere il target, le coordinate o chiamare preventDefault.

ng-repeat crea uno scope figlio per ogni elemento, quindi l'assegnazione di un primitivo all'interno del gestore aggiorna solo quel figlio. Scrivi in โ€‹โ€‹una proprietร  oggetto sullo scope padre oppure usa $parentper rendere visibile il cambiamento all'esterno.

In parte. AI strumenti convertono ng-click in (click) e ng-show a *ngIf in modo affidabile, ma la logica dipendente dall'ambito e i binding bidirezionali richiedono una revisione manuale, perchรฉ l'ambito di AngularJS non ha un equivalente diretto in Angular.

Gli assistenti basati sull'IA individuano rapidamente le cause piรน comuni: un ng-app mancante, un nome del controller che non corrisponde alla registrazione del modulo o un errore di battitura nell'attributo della direttiva. La soluzione suggerita deve ancora essere testata nel browser.

No. AngularJS fornisce solo ng-show, ng-hide e ng-if. Non esiste una direttiva ng-visible e il suo riferimento non produce alcun effetto perchรฉ AngularJS ignora gli attributi non riconosciuti.

Riassumi questo post con: