Direktívy môžete pridať do HTML vo svojom projekte Angular. Niektoré riadia štruktúru vášho označenia, zatiaľ čo iné sa zameriavajú na atribúty.

Tento článok sa bude zaoberať šiestimi najbežnejšími direktívami Angular: ngFor, ngIf, ngClass, ngStyle, ngModel a ngSwitch.

Čo sú to uhlové smernice?

Direktívy Angular vám umožňujú použiť príkazy if a slučky for a pridať ďalšie správanie do kódu HTML projektu Angular.

instagram viewer
smernice Popis
*ngIf ngIf môžete použiť, keď chcete, aby sa určité bloky HTML zobrazovali iba vtedy, ak spĺňajú určitú podmienku. Napríklad, ak máte formulár s kontextovým oknom, ktoré sa zobrazí potom, čo používateľ zadá vstup pre určité pole.
*ngFor ngFor môžete použiť, ak potrebujete, aby sa určitý blok opakoval mnohokrát. Napríklad, ak ste mali zoznam položiek a potrebovali ste zobraziť div pre každú položku.
*Trieda ng To pridáva podmienený štýl pomocou triedy. Ak príkaz if spĺňa podmienku, použije zadanú triedu.
*ngStyle To pridáva podmienený in-line styling. Ak príkaz if spĺňa podmienku, použije zadané štýly.
*ngModel To vám umožňuje vykonávať obojsmernú väzbu. To znamená, že medzi súborom HTML a TypeScript môžete prenášať údaje oboma smermi. Môžete napríklad odovzdať hodnotu atribútu zo súboru TypeScript do súboru HTML a naopak.
*ngSwitch To vám umožňuje pridať príkaz switch s mnohými prípadmi na kontrolu mnohých hodnôt. Na základe prípadov sa zobrazia určité prvky HTML.

Štrukturálne smernice zahŕňajú štruktúru prvkov HTML. Patria sem ngIf, ngFor a ngSwitch. Direktívy atribútov zahŕňajú zmenu vlastností prvkov HTML. Patria sem ngStyle, ngClass a ngModel.

Ako používať ngIf

Ak chcete použiť ngIf, na zobrazenie konkrétneho prvku HTML budete potrebovať podmienku, ktorá sa vyhodnotí ako pravdivá.

  1. Pridajte dve premenné do súboru TypeScript. V tomto príklade existuje premenná noPlaylists a premenná na ukladanie zoznamov skladieb. Táto premenná sa vyhodnotí ako true, ak je dĺžka poľa zoznamov skladieb 0.
    noPlaylists: boolean = false;
    zoznamy skladieb: ľubovoľný = [];

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

  2. Do kódu HTML pridajte príkaz *ngIf. Ak je hodnota noPlaylists pravdivá, zobrazí sa chybové hlásenie uvedené v rozsahu nižšie. Inak to nebude. ngIf môžete použiť na rôzne typy HTML tagy.

    Nie sú k dispozícii žiadne zoznamy skladieb.

  3. Ak chcete pridať komponent „else“ do príkazu if, budete musieť pridať HTML kód pre časť „else“ do bloku šablóny.

    Nie sú k dispozícii žiadne zoznamy skladieb.



    Našli sa zoznamy skladieb.

Ako používať ngFor

Ak potrebujete zopakovať určitý počet blokov na stránke, môžete použiť direktívu ngFor.

  1. V súbore TypeScript pridajte položky do poľa.
    zoznamy skladieb: ľubovoľný = [
    {"name": "Rock", "numberOfSongs": 5},
    {"name": "Contemporary", "numberOfSongs": 9},
    {"name": "Popular", "numberOfSongs": 14},
    {"name": "Acoustic", "numberOfSongs": 3},
    {"name": "Svadobné piesne", "numberOfSongs": 25},
    {"name": "Metal", "numberOfSongs": 0},
    ];
  2. Do súboru HTML pridajte príkaz *ngFor.
    Našli sa zoznamy skladieb.


    {{playlist.name}}
    {{playlist.numberOfSongs}} skladieb


    Vo vnútri ngFor budete môcť odkazovať na každý objekt v poli pomocou premennej „playlist“. "playlist.name" a "playlist.numberOfSongs" vytlačí oba atribúty v rámci tag.

Ako používať ngClass

Môžete zmeniť triedu štýlu, ktorú používa konkrétny div, na základe podmienky.

  1. Pridajte do súboru CSS dve triedy s rôznymi štýlmi. Môžete pridať akýkoľvek druh CSS štýl chcete, napríklad rôzne farby pozadia.
    .piesne {
    farba pozadia: #F7F5F2;
    }
    .noSongs {
    farba pozadia: #FFA8A8;
    }
  2. V rámci cyklu for z predchádzajúceho kroku pridajte smernicu atribútu ngClass. [ngClass]="playlist.numberOfSongs > 0? 'songs': 'noSongs'“ používa to isté ternárny operátor JavaScript a iné jazyky používajú.


    {{playlist.name}}
    {{playlist.numberOfSongs}} skladieb

    Ak je počet skladieb väčší ako nula, na div sa použije trieda „skladby“. To dá divu sivú farbu pozadia. V opačnom prípade, ak je počet skladieb nula, použije triedu „noSongs“ na div. To dá divu červenú farbu pozadia.

Ako používať ngStyle

Namiesto použitia ngClass môžete použiť ngStyle, ak chcete použiť riadkový štýl namiesto štýlu prostredníctvom triedy.

  1. Zmeňte triedu ngClass z predchádzajúceho kroku tak, aby namiesto nej používala štýl ngStyle.

    {{playlist.name}}
    {{playlist.numberOfSongs}} skladieb


  • Ak potrebujete použiť viac ako jeden vložený štýl, môžete každý štýl oddeliť čiarkou.
    [ngStyle]="{'background-color': playlist.numberOfSongs > 0? '#F7F5F2': '#FFA8A8', 'color': playlist.numberOfSongs > 0? 'black': 'darkblue' }"
  • Ako používať ngModel

    ngModel môžete použiť na obojsmernú väzbu. To znamená, že hodnotu atribútu môžete odovzdať medzi súbormi HTML aj TypeScript.

    Povedzme napríklad, že v súbore HTML máte vstupný prvok, ktorý používa ngModel. Atribút ngModel je viazaný na premennú v súbore TypeScript. Keď zadáte hodnotu do vstupu, aktualizuje sa premenná v súbore TypeScript.

    Zmeny vykonané v atribúte v súbore TypeScript sa prejavia aj v HTML, ak túto premennú používajú iné divy.

    1. V app.module.ts pridajte FormsModule do importov v hornej časti súboru a tiež do poľa imports.
      import { FormsModule } z '@angular/forms';
      @NgModule({
      dovoz: [
      ...
      FormsModule
      ]
      })
    2. Pridajte atribút do súboru TypeScript, aby ste mali prehľad o tom, kedy používateľ premenuje zoznam skladieb.
      premenovanie Playlistov: boolean = false;
    3. Zverejnite zoznamy skladieb, aby boli dostupné pri používaní ngModel v súbore HTML.
      verejné zoznamy skladieb: ľubovoľný = [
      ...
      ];
    4. Pridajte do súboru HTML dve tlačidlá, ktoré vám umožnia premenovať alebo zrušiť premenovanie každého zoznamu skladieb.

    5. Pridajte vstupné pole do časti div každého zoznamu skladieb. Vstup bude viditeľný iba po kliknutí na Premenovať zoznam skladieb tlačidlo. Toto vstupné pole bude mať ngModel viazaný na "playlist.name".

      Keď do vstupného poľa zadáte nový názov, playlist.name sa aktualizuje v súbore TypeScript. Tým sa tiež aktualizujú ostatné prvky div v súbore HTML, ktoré používajú súbor playlist.name.

    Ako používať ngSwitch

    ngSwitch môžete použiť na zobrazenie určitých prvkov na základe prípadov v prepínači.

    1. Pridajte nový atribút „rating“ k objektom v poli zoznamov skladieb. Tento atribút môže byť ľubovoľné číslo od 0 do 5 (vrátane).
      verejné zoznamy skladieb: ľubovoľný = [
      {"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": "Wedding Songs", "numberOfSongs": 25, "rating": 5},
      {"name": "Metal", "numberOfSongs": 0, "rating": 0},
      ];
    2. Pridajte prepínač pod názov a počet skladieb pre zoznam skladieb. Na základe čísla hodnotenia zoznamu skladieb sa v zozname skladieb zobrazí správny počet hviezdičiek.

      {{playlist.name}}
      {{playlist.numberOfSongs}} skladieb



      ★★

      ★★★

      ★★★★

      ★★★★★

      Žiadne hodnotenia


    Naučte sa viac s Angular

    Teraz ste sa naučili základy Angular direktív, vrátane toho, ako používať ngIf, ngFor, ngClass, ngStyle, ngModel a ngSwitch. Môžete ich kombinovať a vytvárať tak komplexnejšie používateľské rozhrania. Je toho oveľa viac, čo môžete preskúmať a dozvedieť sa o Angular, bez ohľadu na to, či ste začiatočník alebo pokročilý.

    8 najlepších uhlových kurzov pre začiatočníkov a pokročilých používateľov

    Prečítajte si ďalej

    zdieľamTweetujtezdieľamEmail

    Súvisiace témy

    • Programovanie
    • Programovanie
    • JavaScript
    • HTML
    • CSS

    O autorovi

    Sharlene von Drehnen (5 publikovaných článkov)

    Sharlene je Tech Writer v MUO a tiež pracuje na plný úväzok v oblasti vývoja softvéru. Má bakalársky titul z IT a predchádzajúce skúsenosti so zabezpečovaním kvality a univerzitným doučovaním. Sharlene miluje hry a hru na klavír.

    Viac od Sharlene Von Drehnen

    prihlásiť sa ku odberu noviniek

    Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!

    Kliknutím sem sa prihlásite na odber