Puteți adăuga directive la HTML în proiectul dvs. Angular. Unii controlează structura marcajului, în timp ce alții se concentrează pe atribute.
Acest articol va trece prin cele mai comune șase directive Angular: ngFor, ngIf, ngClass, ngStyle, ngModel și ngSwitch.
Ce sunt directivele unghiulare?
Directivele Angular vă permit să utilizați instrucțiuni if și bucle for și să adăugați alt comportament la codul HTML al unui proiect Angular.
Directivă | Descriere |
---|---|
*ngIf | Puteți utiliza ngIf când doriți ca anumite blocuri HTML să fie afișate numai dacă îndeplinesc o anumită condiție. De exemplu, dacă ați avut un formular cu o fereastră pop-up care se afișează după ce un utilizator a introdus introducerea pentru un anumit câmp. |
*ngFor | Puteți folosi ngFor dacă aveți nevoie de un anumit bloc să se repete de mai multe ori. De exemplu, dacă aveați o listă de articole și trebuia să afișați un div pentru fiecare articol. |
*ngClass | Aceasta adaugă stil condiționat folosind o clasă. Dacă o declarație if îndeplinește condiția, se va aplica clasa specificată. |
*ngStyle | Acest lucru adaugă un stil condiționat în linie. Dacă o instrucțiune if îndeplinește condiția, va aplica stilurile specificate. |
*ngModel | Acest lucru vă permite să faceți legături în două sensuri. Aceasta înseamnă că puteți trece date în ambele direcții între fișierul HTML și TypeScript. De exemplu, puteți trece valoarea unui atribut din fișierul TypeScript în fișierul HTML și invers. |
*ngSwitch | Acest lucru vă permite să adăugați o instrucțiune switch cu multe cazuri pentru a verifica multe valori. Pe baza cazurilor, se vor afișa anumite elemente HTML. |
Directivele structurale implică structura elementelor HTML. Acestea includ ngIf, ngFor și ngSwitch. Directivele de atribut implică modificarea proprietăților elementelor HTML. Acestea includ ngStyle, ngClass și ngModel.
Cum se utilizează ngIf
Pentru a utiliza ngIf, veți avea nevoie de o condiție de evaluat la adevărat pentru ca un anumit element HTML să fie afișat.
- Adăugați două variabile în fișierul TypeScript. În acest exemplu, există o variabilă noPlaylists și o variabilă pentru a stoca listele de redare. Această variabilă se va evalua adevărat dacă lungimea matricei listelor de redare este 0.
noPlaylists: boolean = false;
liste de redare: orice = [];constructor() { }
ngOnInit(): void {
dacă (this.playlists.length 0) {
this.noPlaylists = adevărat;
}
} - În HTML, adăugați instrucțiunea *ngIf. Dacă noPlaylists este adevărat, va apărea mesajul de eroare conținut în intervalul de mai jos. Altfel, nu va fi. Puteți aplica ngIf la diferite tipuri de Etichete HTML.
Nu există liste de redare disponibile.
- Pentru a adăuga o componentă „else” la instrucțiunea if, va trebui să adăugați codul HTML pentru partea „else” într-un bloc șablon.
Nu există liste de redare disponibile.
S-au găsit liste de redare.
Cum se utilizează ngFor
Dacă trebuie să repetați un anumit număr de blocuri pe o pagină, puteți utiliza directiva ngFor.
- În fișierul TypeScript, adăugați elemente la matrice.
liste de redare: orice = [
{"name": "Rock", "numberOfSongs": 5},
{"name": "Contemporan", "numberOfSongs": 9},
{"name": "Popular", "numberOfSongs": 14},
{"name": "Acoustic", "numberOfSongs": 3},
{"name": "Cântece de nuntă", "numberOfSongs": 25},
{"name": "Metal", "numberOfSongs": 0},
]; - În fișierul HTML, adăugați instrucțiunea *ngFor.
În interiorul ngFor, veți putea face referire la fiecare obiect din matrice folosind variabila „playlist”. „playlist.name” și „playlist.numberOfSongs” vor imprima ambele atribute în cadrul etichetă.S-au găsit liste de redare.
{{playlist.name}}
{{playlist.numberOfSongs}} cântece
Cum se utilizează ngClass
Puteți schimba clasa de stil pe care o folosește un anumit div, în funcție de o condiție.
- Adăugați două clase în fișierul CSS cu stiluri diferite. Puteți adăuga orice fel de Stilul CSS doriti, cum ar fi culori diferite de fundal.
.melodii {
culoare de fundal: #F7F5F2;
}
.noSongs {
culoare de fundal: #FFA8A8;
} - În bucla for de la pasul anterior, adăugați directiva de atribut ngClass. [ngClass]="playlist.numberOfSongs > 0? „songs”: „noSongs”” folosește același lucru operator ternar care JavaScript și alte limbi utilizate.
Dacă numărul de melodii este mai mare decât zero, se va aplica clasa „melodii” la div. Acest lucru va da div-ului o culoare de fundal gri. În caz contrar, dacă numărul de melodii este zero, se va aplica clasa „noSongs” la div. Acest lucru va da div-ului o culoare roșie de fundal.
{{playlist.name}}
{{playlist.numberOfSongs}} cântece
Cum se utilizează ngStyle
În loc să utilizați ngClass, puteți utiliza ngStyle dacă doriți să aplicați stilul în linie în loc de stilul printr-o clasă.
- Schimbați ngClass de la pasul anterior pentru a utiliza în schimb ngStyle.
{{playlist.name}}
{{playlist.numberOfSongs}} cântece
[ngStyle]="{'background-color': playlist.numberOfSongs > 0? „#F7F5F2”: „#FFA8A8”, „culoare”: playlist.numberOfSongs > 0? „negru”: „albastru închis” }”
Cum se utilizează ngModel
Puteți utiliza ngModel pentru legarea în două sensuri. Aceasta înseamnă că puteți trece valoarea unui atribut între fișierele HTML și TypeScript.
De exemplu, să presupunem că aveți un element de intrare în fișierul HTML care utilizează ngModel. Atributul ngModel este legat de o variabilă din fișierul TypeScript. Când introduceți o valoare în intrare, aceasta va actualiza variabila în fișierul TypeScript.
Modificările aduse atributului din fișierul TypeScript se vor reflecta și în HTML dacă alte div-uri folosesc acea variabilă.
- În app.module.ts, adăugați FormsModule în importurile din partea de sus a fișierului și, de asemenea, în matricea imports.
import { FormsModule } din '@angular/forms';
@NgModule({
importuri: [
...
FormsModule
]
}) - Adăugați un atribut în fișierul TypeScript pentru a ține evidența când utilizatorul redenumește o listă de redare.
redenumirea listelor de redare: boolean = false;
- Faceți publică variabila listelor de redare, astfel încât aceasta să poată fi accesibilă atunci când utilizați ngModel în fișierul HTML.
liste de redare publice: orice = [
...
]; - Adăugați două butoane în fișierul HTML, care vă vor permite să redenumiți sau să anulați redenumirea fiecărei liste de redare.
- Adăugați o casetă de introducere în interiorul fiecărei liste de redare div. Intrarea va fi vizibilă numai când faceți clic pe Redenumiți lista de redare buton. Această casetă de introducere va avea un ngModel legat de „playlist.name”.
Când introduceți un nume nou în caseta de introducere, playlist.name se va actualiza în fișierul TypeScript. Acest lucru va actualiza apoi și celelalte div-uri din fișierul HTML care folosesc playlist.name.
Cum se utilizează ngSwitch
Puteți utiliza ngSwitch pentru a afișa anumite elemente pe baza cazurilor dintr-o carcasă de comutare.
- Adăugați un nou atribut „evaluare” la obiectele din matricea listelor de redare. Acest atribut poate fi orice număr între 0 și 5 (inclusiv).
liste de redare publice: orice = [
{"name": "Rock", "numberOfSongs": 5, "evaluare": 5},
{"name": "Contemporan", "numberOfSongs": 9, "evaluare": 1},
{"name": "Popular", "numberOfSongs": 14, "evaluare": 5},
{"name": "Acoustic", "numberOfSongs": 3, "evaluare": 4},
{"name": "Cântece de nuntă", "numberOfSongs": 25, "evaluare": 5},
{"name": "Metal", "numberOfSongs": 0, "evaluare": 0},
]; - Adăugați un caz de comutare sub numele și numărul de melodii pentru o listă de redare. Pe baza numărului de evaluare pentru lista de redare, lista de redare va afișa numărul corect de stele.
{{playlist.name}}
{{playlist.numberOfSongs}} cântece
★★★★★★★★★★★★★★★Fără evaluări
Învățați mai multe cu Angular
Acum ați învățat elementele de bază ale directivelor Angular, inclusiv cum să utilizați ngIf, ngFor, ngClass, ngStyle, ngModel și ngSwitch. Le puteți combina pentru a crea interfețe de utilizator mai complexe. Există atât de mult mai multe pentru tine de explorat și de învățat despre Angular, indiferent dacă ești începător sau la un nivel avansat.
Top 8 cursuri Angular pentru începători și utilizatori avansați
Citiți în continuare
Subiecte asemănătoare
- Programare
- Programare
- JavaScript
- HTML
- CSS
Despre autor
Sharlene este scriitoare tehnică la MUO și lucrează, de asemenea, cu normă întreagă în dezvoltarea de software. Ea are o licență în IT și are experiență anterioară în asigurarea calității și tutorat universitar. Sharlene iubește să joace și să cânte la pian.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Click aici pentru a te abona