Vous pouvez ajouter des directives au HTML dans votre projet Angular. Certains contrôlent la structure de votre balisage tandis que d'autres se concentrent sur les attributs.
Cet article passera en revue les six directives angulaires les plus courantes: ngFor, ngIf, ngClass, ngStyle, ngModel et ngSwitch.
Que sont les directives angulaires ?
Les directives angulaires vous permettent d'utiliser des instructions if et des boucles for, et d'ajouter d'autres comportements au code HTML d'un projet Angular.
Directif | La description |
---|---|
*ngIf | Vous pouvez utiliser ngIf lorsque vous souhaitez que certains blocs HTML ne s'affichent que s'ils remplissent une certaine condition. Par exemple, si vous aviez un formulaire avec une fenêtre contextuelle qui s'affiche après qu'un utilisateur a saisi une entrée pour un certain champ. |
*ngPour | Vous pouvez utiliser ngFor si vous avez besoin qu'un certain bloc se répète plusieurs fois. Par exemple, si vous aviez une liste d'éléments et que vous deviez afficher une div pour chaque élément. |
*ngClass | Cela ajoute un style conditionnel à l'aide d'une classe. Si une instruction if remplit la condition, elle appliquera la classe spécifiée. |
*ngStyle | Cela ajoute un style en ligne conditionnel. Si une instruction if remplit la condition, elle appliquera les styles spécifiés. |
*ngModèle | Cela vous permet de faire une liaison bidirectionnelle. Cela signifie que vous pouvez transmettre des données dans les deux sens entre le fichier HTML et TypeScript. Par exemple, vous pouvez transmettre la valeur d'un attribut du fichier TypeScript au fichier HTML, et vice versa. |
*ngSwitch | Cela vous permet d'ajouter une instruction switch avec de nombreux cas pour vérifier de nombreuses valeurs. Selon les cas, certains éléments HTML s'afficheront. |
Les directives structurelles impliquent la structure des éléments HTML. Ceux-ci incluent ngIf, ngFor et ngSwitch. Les directives d'attribut impliquent de modifier les propriétés des éléments HTML. Ceux-ci incluent ngStyle, ngClass et ngModel.
Comment utiliser ngIf
Pour utiliser ngIf, vous aurez besoin d'une condition à évaluer sur true pour qu'un élément HTML particulier s'affiche.
- Ajoutez deux variables à votre fichier TypeScript. Dans cet exemple, il y a une variable noPlaylists et une variable pour stocker les listes de lecture. Cette variable sera évaluée à vrai si la longueur du tableau des listes de lecture est 0.
noPlaylists: booléen = faux ;
listes de lecture: n'importe lequel = [] ;constructeur() { }
ngOnInit(): void {
si (this.playlists.length 0) {
this.noPlaylists = vrai;
}
} - Dans le HTML, ajoutez l'instruction *ngIf. Si noPlaylists est vrai, le message d'erreur contenu dans la plage ci-dessous apparaîtra. Sinon, ce ne sera pas le cas. Vous pouvez appliquer ngIf à différents types de Balises HTML.
Il n'y a pas de listes de lecture disponibles.
- Pour ajouter un composant "else" à l'instruction if, vous devrez ajouter le code HTML de la partie "else" dans un bloc de modèle.
Il n'y a pas de listes de lecture disponibles.
Listes de lecture trouvées.
Comment utiliser ngFor
Si vous devez répéter un certain nombre de blocs sur une page, vous pouvez utiliser la directive ngFor.
- Dans le fichier TypeScript, ajoutez des éléments au tableau.
listes de lecture: n'importe lequel = [
{"name": "Rock", "numberOfSongs": 5},
{"name": "Contemporain", "numberOfSongs": 9},
{"name": "Popular", "numberOfSongs": 14},
{"name": "Acoustique", "numberOfSongs": 3},
{"name": "Chansons de mariage", "numberOfSongs": 25},
{"name": "Métal", "numberOfSongs": 0},
]; - Dans le fichier HTML, ajoutez l'instruction *ngFor.
À l'intérieur du ngFor, vous pourrez référencer chaque objet du tableau à l'aide de la variable "playlist". "playlist.name" et "playlist.numberOfSongs" imprimeront les deux attributs dans le étiqueter.Listes de lecture trouvées.
{{playlist.name}}
{{playlist.numberOfSongs}} chansons
Comment utiliser ngClass
Vous pouvez modifier la classe de style utilisée par une div particulière, en fonction d'une condition.
- Ajoutez deux classes dans le fichier CSS avec des styles différents. Vous pouvez ajouter n'importe quel type de Style CSS que vous voulez, comme différentes couleurs d'arrière-plan.
.Chansons {
couleur de fond: #F7F5F2 ;
}
.noSongs {
couleur de fond: #FFA8A8 ;
} - Dans la boucle for de l'étape précédente, ajoutez la directive d'attribut ngClass. [ngClass]="playlist.numberOfSongs > 0? 'songs': 'noSongs'" utilise la même opérateur ternaire que JavaScript et autres langues utilisées.
Si le nombre de chansons est supérieur à zéro, il appliquera la classe "chansons" à la div. Cela donnera à la div une couleur de fond grise. Sinon, si le nombre de chansons est zéro, il appliquera la classe "noSongs" à la div. Cela donnera à la div une couleur de fond rouge.
{{playlist.name}}
{{playlist.numberOfSongs}} chansons
Comment utiliser ngStyle
Au lieu d'utiliser ngClass, vous pouvez utiliser ngStyle si vous souhaitez appliquer un style en ligne au lieu d'un style via une classe.
- Modifiez le ngClass de l'étape précédente pour utiliser ngStyle à la place.
{{playlist.name}}
{{playlist.numberOfSongs}} chansons
[ngStyle]="{'background-color': playlist.numberOfSongs > 0? '#F7F5F2': '#FFA8A8', 'couleur': playlist.numberOfSongs > 0? 'noir': 'bleu foncé' }"
Comment utiliser ngModel
Vous pouvez utiliser ngModel pour une liaison bidirectionnelle. Cela signifie que vous pouvez transmettre la valeur d'un attribut entre les fichiers HTML et TypeScript.
Par exemple, supposons que vous ayez un élément d'entrée dans le fichier HTML qui utilise ngModel. L'attribut ngModel est lié à une variable dans le fichier TypeScript. Lorsque vous entrez une valeur dans l'entrée, elle mettra à jour la variable dans le fichier TypeScript.
Les modifications apportées à l'attribut dans le fichier TypeScript seront également reflétées dans le HTML si d'autres divs utilisent cette variable.
- Dans app.module.ts, ajoutez le FormsModule dans les importations en haut du fichier, ainsi que dans le tableau des importations.
importer { FormsModule } à partir de '@angular/forms' ;
@NgModule({
importations: [
...
ModuleFormulaires
]
}) - Ajoutez un attribut dans le fichier TypeScript pour savoir quand l'utilisateur renomme une liste de lecture.
renommer les listes de lecture: booléen = faux ;
- Rendez la variable playlists publique afin qu'elle soit accessible lors de l'utilisation de ngModel dans le fichier HTML.
listes de lecture publiques: toutes = [
...
]; - Ajoutez deux boutons dans le fichier HTML, ce qui vous permettra de renommer ou d'annuler le renommage de chaque playlist.
- Ajoutez une zone de saisie à l'intérieur de la div de chaque liste de lecture. L'entrée ne sera visible que lorsque vous cliquez sur le Renommer la liste de lecture bouton. Cette zone de saisie aura un ngModel lié à "playlist.name".
Lorsque vous entrez un nouveau nom dans la zone de saisie, playlist.name sera mis à jour dans le fichier TypeScript. Cela mettra également à jour les autres divs du fichier HTML qui utilisent playlist.name.
Comment utiliser ngSwitch
Vous pouvez utiliser ngSwitch pour afficher certains éléments en fonction des cas dans un cas de commutation.
- Ajoutez un nouvel attribut "rating" aux objets à l'intérieur du tableau des listes de lecture. Cet attribut peut être n'importe quel nombre compris entre 0 et 5 (inclus).
listes de lecture publiques: toutes = [
{"name": "Rock", "numberOfSongs": 5, "rating": 5},
{"name": "Contemporain", "numberOfSongs": 9, "rating": 1},
{"name": "Popular", "numberOfSongs": 14, "rating": 5},
{"name": "Acoustique", "numberOfSongs": 3, "rating": 4},
{"name": "Chansons de mariage", "numberOfSongs": 25, "rating": 5},
{"name": "Métal", "numberOfSongs": 0, "rating": 0},
]; - Ajoutez une casse sous le nom et le nombre de chansons pour une liste de lecture. En fonction du numéro de classement de la liste de lecture, la liste de lecture affichera le nombre correct d'étoiles.
{{playlist.name}}
{{playlist.numberOfSongs}} chansons
★★★★★★★★★★★★★★★Pas de notes
En savoir plus avec Angular
Vous avez maintenant appris les bases des directives angulaires, y compris comment utiliser ngIf, ngFor, ngClass, ngStyle, ngModel et ngSwitch. Vous pouvez les combiner pour créer des interfaces utilisateur plus complexes. Il y a tellement plus à explorer et à apprendre sur Angular, que vous soyez débutant ou avancé.
Top 8 des cours angulaires pour débutants et utilisateurs avancés
Lire la suite
Rubriques connexes
- Programmation
- Programmation
- Javascript
- HTML
- CSS
A propos de l'auteur
Sharlene est rédactrice technique chez MUO et travaille également à plein temps dans le développement de logiciels. Elle est titulaire d'un baccalauréat en informatique et possède une expérience antérieure en assurance qualité et en tutorat universitaire. Sharlene adore jouer et jouer du piano.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !
Cliquez ici pour vous abonner