Możesz dodać dyrektywy do kodu HTML w swoim projekcie Angular. Niektóre kontrolują strukturę znaczników, podczas gdy inne skupiają się na atrybutach.
W tym artykule omówimy sześć najpopularniejszych dyrektyw Angular: ngFor, ngIf, ngClass, ngStyle, ngModel i ngSwitch.
Czym są dyrektywy kątowe?
Dyrektywy Angular umożliwiają używanie instrukcji if i pętli for oraz dodawanie innych zachowań do kodu HTML projektu Angular.
Dyrektywa | Opis |
---|---|
*ngIf | Możesz użyć ngIf, jeśli chcesz, aby niektóre bloki HTML były wyświetlane tylko wtedy, gdy spełniają określony warunek. Na przykład, jeśli masz formularz z wyskakującym okienkiem, które wyświetla się po wprowadzeniu przez użytkownika danych wejściowych dla określonego pola. |
*ngFor | Możesz użyć ngFor, jeśli chcesz, aby pewien blok był powtarzany wiele razy. Na przykład, jeśli masz listę przedmiotów i musisz wyświetlić div dla każdego przedmiotu. |
*ngKlasa | Dodaje styl warunkowy przy użyciu klasy. Jeśli instrukcja if spełnia warunek, zastosuje określoną klasę. |
*ngStyle | Dodaje to warunkową stylizację w linii. Jeśli instrukcja if spełnia warunek, zastosuje określone style. |
*ngModel | Pozwala to na wykonanie dwukierunkowego wiązania. Oznacza to, że możesz przekazywać dane w obu kierunkach między plikiem HTML i TypeScript. Na przykład można przekazać wartość atrybutu z pliku TypeScript do pliku HTML i na odwrót. |
*ngSwitch | Umożliwia to dodanie instrukcji switch z wieloma przypadkami w celu sprawdzenia wielu wartości. W zależności od przypadków pokażą się niektóre elementy HTML. |
Dyrektywy strukturalne dotyczą struktury elementów HTML. Należą do nich ngIf, ngFor i ngSwitch. Dyrektywy atrybutów obejmują zmianę właściwości elementów HTML. Należą do nich ngStyle, ngClass i ngModel.
Jak korzystać z ngIf
Aby użyć ngIf, będziesz potrzebować warunku, którego wartość ma wartość true, aby konkretny element HTML miał się pokazać.
- Dodaj dwie zmienne do pliku TypeScript. W tym przykładzie istnieje zmienna noPlaylists i zmienna do przechowywania list odtwarzania. Ta zmienna zostanie oceniona jako prawda, jeśli długość tablicy list odtwarzania wynosi 0.
noPlaylists: boolean = false;
listy odtwarzania: dowolne = [];konstruktor() { }
ngOnInit(): nieważne {
if (this.playlists.length 0) {
this.noPlaylists = prawda;
}
} - W kodzie HTML dodaj instrukcję *ngIf. Jeśli noPlaylists ma wartość true, pojawi się komunikat o błędzie zawarty w poniższym span. W przeciwnym razie nie będzie. Możesz zastosować ngIf do różnych typów Tagi HTML.
Brak dostępnych list odtwarzania.
- Aby dodać składnik „else” do instrukcji if, musisz dodać kod HTML dla części „else” w bloku szablonu.
Brak dostępnych list odtwarzania.
Znaleziono playlisty.
Jak korzystać z ngFor
Jeśli potrzebujesz powtórzyć określoną liczbę bloków na stronie, możesz użyć dyrektywy ngFor.
- W pliku TypeScript dodaj elementy do tablicy.
listy odtwarzania: dowolne = [
{"name": "Rock", "numberOfSongs": 5},
{"name": "Contemporary", "numberOfSongs": 9},
{"name": "Popularne", "numberOfSongs": 14},
{"name": "Acoustic", "numberOfSongs": 3},
{"name": "Piosenki ślubne", "numberOfSongs": 25},
{"name": "Metal", "numberOfSongs": 0},
]; - W pliku HTML dodaj instrukcję *ngFor.
Wewnątrz ngFor będziesz mógł odwoływać się do każdego obiektu w tablicy za pomocą zmiennej "playlist". „playlist.name” i „playlist.numberOfSongs” wypiszą oba atrybuty w obrębie etykietka.Znaleziono playlisty.
{{nazwa.playlisty}}
{{playlist.numberOfSongs}} utworów
Jak korzystać z ngClass
Możesz zmienić klasę stylizacji używaną przez konkretny div, w zależności od warunku.
- Dodaj dwie klasy do pliku CSS z różnymi stylami. Możesz dodać dowolny rodzaj Stylizacja CSS chcesz, na przykład różne kolory tła.
.piosenki {
kolor tła: #F7F5F2;
}
.nopiosenki {
kolor tła: #FFA8A8;
} - W pętli for z poprzedniego kroku dodaj dyrektywę atrybutu ngClass. [ngClass]="playlista.liczbaUtworów > 0? „songs”: „noSongs” używa tego samego operator trójargumentowy, który JavaScript i inne języki.
Jeśli liczba utworów jest większa niż zero, do elementu div zostanie zastosowana klasa „songs”. Dzięki temu div będzie miał szary kolor tła. W przeciwnym razie, jeśli liczba utworów wynosi zero, do elementu div zostanie zastosowana klasa „noSongs”. Dzięki temu div będzie miał czerwone tło.
{{nazwa.playlisty}}
{{playlist.numberOfSongs}} utworów
Jak korzystać z ngStyle
Zamiast używać ngClass, możesz użyć ngStyle, jeśli chcesz zastosować stylizację w wierszu zamiast stylizować za pośrednictwem klasy.
- Zmień ngClass z poprzedniego kroku, aby zamiast tego użyć ngStyle.
{{nazwa.playlisty}}
{{playlist.numberOfSongs}} utworów
[ngStyle] = "{'background-color": playlist.numberOfSongs > 0? „#F7F5F2”: „#FFA8A8”, „kolor”: playlist.numberOfSongs > 0? 'czarny': 'ciemnoniebieski' }"
Jak korzystać z ngModel
Możesz użyć ngModel do dwukierunkowego wiązania. Oznacza to, że możesz przekazać wartość atrybutu między plikami HTML i TypeScript.
Załóżmy na przykład, że masz element wejściowy w pliku HTML, który używa ngModel. Atrybut ngModel jest powiązany ze zmienną w pliku TypeScript. Po wprowadzeniu wartości do danych wejściowych zaktualizuje ona zmienną w pliku TypeScript.
Zmiany wprowadzone w atrybucie w pliku TypeScript zostaną również odzwierciedlone w kodzie HTML, jeśli inne elementy div będą używać tej zmiennej.
- W app.module.ts dodaj FormsModule do importów na górze pliku, a także do tablicy importów.
importuj { FormsModule } z '@angular/forms';
@NgModule({
import: [
...
Moduł formularzy
]
}) - Dodaj atrybut w pliku TypeScript, aby śledzić, kiedy użytkownik zmienia nazwę listy odtwarzania.
zmiana nazw list odtwarzania: boolean = false;
- Ustaw zmienną playlisty jako publiczną, aby była dostępna podczas używania ngModel w pliku HTML.
publiczne playlisty: dowolna = [
...
]; - Dodaj dwa przyciski w pliku HTML, które pozwolą ci zmienić nazwę lub anulować zmianę nazwy każdej listy odtwarzania.
- Dodaj pole wejściowe w div każdej listy odtwarzania. Dane wejściowe będą widoczne dopiero po kliknięciu przycisku Zmień nazwę listy odtwarzania przycisk. To pole wejściowe będzie miało ngModel powiązany z "playlist.name".
Gdy wprowadzisz nową nazwę w polu wprowadzania, plik playlist.name zostanie zaktualizowany w pliku TypeScript. Spowoduje to również zaktualizowanie innych elementów div w pliku HTML, które używają pliku playlist.name.
Jak korzystać z ngSwitch
Możesz użyć ngSwitch, aby wyświetlić pewne elementy na podstawie przypadków w przypadku przełącznika.
- Dodaj nowy atrybut „rating” do obiektów w tablicy playlist. Ten atrybut może być dowolną liczbą z zakresu od 0 do 5 (włącznie).
publiczne playlisty: dowolna = [
{"name": "Rock", "numberOfSongs": 5, "rating": 5},
{"name": "Contemporary", "numberOfSongs": 9, "rating": 1},
{"name": "Popularne", "numberOfSongs": 14, "rating": 5},
{"name": "Acoustic", "numberOfSongs": 3, "rating": 4},
{"name": "Wedding Songs", "numberOfSongs": 25, "rating": 5},
{"name": "Metal", "numberOfSongs": 0, "rating": 0},
]; - Dodaj skrzynkę przełączników pod nazwą i liczbą utworów na liście odtwarzania. W oparciu o numer oceny playlisty, playlista pokaże prawidłową liczbę gwiazdek.
{{nazwa.playlisty}}
{{playlist.numberOfSongs}} utworów
★★★★★★★★★★★★★★★Brak ocen
Dowiedz się więcej z Angular
Teraz poznałeś podstawy dyrektyw Angular, w tym sposób korzystania z ngIf, ngFor, ngClass, ngStyle, ngModel i ngSwitch. Możesz je łączyć, aby tworzyć bardziej złożone interfejsy użytkownika. Jest o wiele więcej do odkrycia i poznania Angulara, bez względu na to, czy jesteś początkującym, czy zaawansowanym.
8 najlepszych kursów kątowych dla początkujących i zaawansowanych
Czytaj dalej
Powiązane tematy
- Programowanie
- Programowanie
- JavaScript
- HTML
- CSS
O autorze
Sharlene jest pisarzem technicznym w MUO, a także pracuje na pełny etat w tworzeniu oprogramowania. Posiada tytuł Bachelor of IT oraz wcześniejsze doświadczenie w zapewnianiu jakości i udzielaniu korepetycji uniwersyteckich. Sharlene uwielbia grać i grać na pianinie.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować