Puoi aggiungere direttive all'HTML nel tuo progetto Angular. Alcuni controllano la struttura del tuo markup mentre altri si concentrano sugli attributi.

Questo articolo esaminerà le sei direttive Angular più comuni: ngFor, ngIf, ngClass, ngStyle, ngModel e ngSwitch.

Cosa sono le direttive angolari?

Le direttive Angular consentono di utilizzare istruzioni if ​​e for loop e di aggiungere altri comportamenti al codice HTML di un progetto Angular.

instagram viewer
Direttiva Descrizione
*ngIf Puoi usare ngIf quando vuoi che determinati blocchi HTML vengano visualizzati solo se soddisfano una determinata condizione. Ad esempio, se avevi un modulo con un popup che viene visualizzato dopo che un utente ha immesso l'input per un determinato campo.
*ngFor Puoi usare ngFor se hai bisogno di un determinato blocco da ripetere molte volte. Ad esempio, se si dispone di un elenco di elementi ed è necessario visualizzare un div per ogni elemento.
*ngClass Questo aggiunge uno stile condizionale usando una classe. Se un'istruzione if soddisfa la condizione, applicherà la classe specificata.
*ngStile Questo aggiunge uno stile in linea condizionale. Se un'istruzione if soddisfa la condizione, applicherà gli stili specificati.
*ngModel Ciò ti consente di eseguire la rilegatura a due vie. Ciò significa che puoi passare i dati in entrambe le direzioni tra il file HTML e TypeScript. Ad esempio, puoi passare il valore di un attributo dal file TypeScript al file HTML e viceversa.
*ngSwitch Ciò consente di aggiungere un'istruzione switch con molti casi per controllare molti valori. In base ai casi, verranno visualizzati alcuni elementi HTML.

Le direttive strutturali coinvolgono la struttura degli elementi HTML. Questi includono ngIf, ngFor e ngSwitch. Le direttive degli attributi implicano la modifica delle proprietà degli elementi HTML. Questi includono ngStyle, ngClass e ngModel.

Come usare ngIf

Per usare ngIf, avrai bisogno di una condizione per valutare true per mostrare un particolare elemento HTML.

  1. Aggiungi due variabili al tuo file TypeScript. In questo esempio, c'è una variabile noPlaylists e una variabile per memorizzare le playlist. Questa variabile restituirà true se la lunghezza della matrice delle playlist è 0.
    noPlaylist: booleano = false;
    playlist: qualsiasi = [];

    costruttore() { }
    ngOnInit(): void {
    if (this.playlists.length 0) {
    this.noPlaylists = true;
    }
    }

  2. Nell'HTML, aggiungi l'istruzione *ngIf. Se noPlaylists è true, apparirà il messaggio di errore contenuto nell'intervallo sottostante. Altrimenti, non lo farà. Puoi applicare ngIf a diversi tipi di Tag HTML.

    Non ci sono playlist disponibili.

  3. Per aggiungere un componente "else" all'istruzione if, dovrai aggiungere il codice HTML per la parte "else" in un blocco modello.

    Non ci sono playlist disponibili.



    Playlist trovate.

Come usare ngFor

Se devi ripetere un certo numero di blocchi su una pagina, puoi usare la direttiva ngFor.

  1. Nel file TypeScript, aggiungi elementi all'array.
    playlist: qualsiasi = [
    {"name": "Rock", "numberOfSongs": 5},
    {"name": "Contemporary", "numberOfSongs": 9},
    {"name": "Popular", "numberOfSongs": 14},
    {"name": "Acustico", "numberOfSongs": 3},
    {"name": "Canzoni del matrimonio", "numberOfSongs": 25},
    {"name": "Metallo", "numberOfSongs": 0},
    ];
  2. Nel file HTML, aggiungi l'istruzione *ngFor.
    Playlist trovate.


    {{playlist.name}}
    {{playlist.numberOfSongs}} brani


    All'interno di ngFor, sarai in grado di fare riferimento a ciascun oggetto nell'array usando la variabile "playlist". "playlist.name" e "playlist.numberOfSongs" stamperanno entrambi gli attributi all'interno del file etichetta.

Come usare ngClass

È possibile modificare la classe di stile utilizzata da un particolare div, in base a una condizione.

  1. Aggiungi due classi nel file CSS con stili diversi. Puoi aggiungere qualsiasi tipo di Stile CSS vuoi, come diversi colori di sfondo.
    .canzoni {
    colore di sfondo: #F7F5F2;
    }
    .noSongs {
    colore di sfondo: #FFA8A8;
    }
  2. All'interno del ciclo for del passaggio precedente, aggiungi la direttiva dell'attributo ngClass. [ngClass]="playlist.numberOfSongs > 0? 'songs': 'noSongs'" sta usando lo stesso operatore ternario che JavaScript e altre lingue usano.


    {{playlist.name}}
    {{playlist.numberOfSongs}} brani

    Se il numero di brani è maggiore di zero, verrà applicata la classe "brani" al div. Questo darà al div un colore di sfondo grigio. In caso contrario, se il numero di brani è zero, verrà applicata la classe "noSongs" al div. Questo darà al div un colore di sfondo rosso.

Come usare ngStyle

Invece di usare ngClass, puoi usare ngStyle se vuoi applicare uno stile in linea invece di uno stile tramite una classe.

  1. Modificare ngClass dal passaggio precedente per utilizzare invece ngStyle.

    {{playlist.name}}
    {{playlist.numberOfSongs}} brani


  • Se devi applicare più di uno stile in linea, puoi separare ogni stile con una virgola.
    [ngStyle]="{'background-color': playlist.numberOfSongs > 0? '#F7F5F2': '#FFA8A8', 'colore': playlist.numberOfSongs > 0? 'nero': 'blu scuro' }"
  • Come usare ngModel

    Puoi usare ngModel per l'associazione a due vie. Ciò significa che puoi passare il valore di un attributo tra i file HTML e TypeScript.

    Ad esempio, supponiamo di avere un elemento di input nel file HTML che utilizza ngModel. L'attributo ngModel è associato a una variabile nel file TypeScript. Quando inserisci un valore nell'input, aggiornerà la variabile nel file TypeScript.

    Le modifiche apportate all'attributo nel file TypeScript si rifletteranno anche nell'HTML se altri div utilizzano quella variabile.

    1. In app.module.ts, aggiungi FormsModule alle importazioni nella parte superiore del file e anche all'array delle importazioni.
      import { FormsModule } da '@angular/forms';
      @NgModule({
      importazioni: [
      ...
      Modulo Forme
      ]
      })
    2. Aggiungi un attributo nel file TypeScript per tenere traccia di quando l'utente sta rinominando una playlist.
      rinominare le playlist: boolean = false;
    3. Rendi pubblica la variabile playlist in modo che possa essere accessibile quando usi ngModel nel file HTML.
      playlist pubbliche: qualsiasi = [
      ...
      ];
    4. Aggiungi due pulsanti nel file HTML, che ti permetteranno di rinominare o annullare la ridenominazione di ciascuna playlist.

    5. Aggiungi una casella di input all'interno del div di ciascuna playlist. L'input sarà visibile solo quando si fa clic su Rinomina playlist pulsante. Questa casella di input avrà un ngModel associato a "playlist.name".

      Quando inserisci un nuovo nome nella casella di input, playlist.name si aggiornerà nel file TypeScript. Questo aggiornerà anche gli altri div nel file HTML che usa playlist.name.

    Come usare ngSwitch

    Puoi utilizzare ngSwitch per visualizzare determinati elementi in base ai casi all'interno di un caso di commutazione.

    1. Aggiungi un nuovo attributo "rating" agli oggetti all'interno dell'array delle playlist. Questo attributo può essere qualsiasi numero compreso tra 0 e 5 (incluso).
      playlist pubbliche: qualsiasi = [
      {"name": "Rock", "numberOfSongs": 5, "rating": 5},
      {"name": "Contemporary", "numberOfSongs": 9, "rating": 1},
      {"name": "Popular", "numberOfSongs": 14, "rating": 5},
      {"name": "Acoustic", "numberOfSongs": 3, "rating": 4},
      {"name": "Canzoni del matrimonio", "numberOfSongs": 25, "rating": 5},
      {"name": "Metal", "numberOfSongs": 0, "rating": 0},
      ];
    2. Aggiungi una casella di commutazione sotto il nome e il numero di brani per una playlist. In base al numero di valutazione per la playlist, la playlist mostrerà il numero corretto di stelle.

      {{playlist.name}}
      {{playlist.numberOfSongs}} brani



      ★★

      ★★★

      ★★★★

      ★★★★★

      Nessuna valutazione


    Imparare di più con Angular

    Ora hai imparato le basi delle direttive Angular, incluso come usare ngIf, ngFor, ngClass, ngStyle, ngModel e ngSwitch. Puoi combinarli per creare interfacce utente più complesse. C'è molto altro da esplorare e conoscere Angular, non importa se sei un principiante o un livello avanzato.

    I migliori 8 corsi angolari per principianti e utenti avanzati

    Leggi Avanti

    CondividereTwittaCondividereE-mail

    Argomenti correlati

    • Programmazione
    • Programmazione
    • JavaScript
    • HTML
    • CSS

    Circa l'autore

    Sharlene von Drehnen (5 articoli pubblicati)

    Sharlene è una Tech Writer presso MUO e lavora anche a tempo pieno nello sviluppo di software. Ha una laurea in informatica e ha precedenti esperienze in Quality Assurance e tutoraggio universitario. Sharlene ama giocare e suonare il piano.

    Altro da Sharlene Von Drehnen

    Iscriviti alla nostra Newsletter

    Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

    Clicca qui per iscriverti