Académique Documents
Professionnel Documents
Culture Documents
Une directive est une classe Angular qui ressemble à un composant mais qui n’a pas de template.
D’ailleurs, dans Angular, la classe Component hérite de la classe Directive. Une directive est déclarée
à l’aide du décorateur @Directive.
Une directive permet d’interagir avec les éléments HTML d’une page web en leur attachant un
comportement ou une apparence spécifique. Lorsqu’ Angular trouve une directive dans un template
HTML, il instancie la classe correspondante et donne à cette instance le contrôle sur la portion du
DOM qui lui revient.
Enfin, une directive possède un sélecteur qui permet d’indique à Angular où l’appliquer dans le
template, sachant qu’on peut appliquer plusieurs directives à un même élément HTML.
Les directives Angular sont de trois types : Les composants, les directives d’attribut et les directives
structurelles.
a- La directive *ngIf
- Rôle : Permet d’afficher un élément du DOM selon une condition
- Syntaxe : <div *ngIf="condition">Contenu à rendre lorsque la condition est vraie.</div>
- Exemple 1 : <div *ngIf=" !admin"><p>Access denied !</p></div>
- Exemple 2 : Cas if … else
<div *ngIf="isLoggedIn; else loggedOut"> <p>Bienvenue nouveau</p></div>
<ng-template #loggedOut><p>Veuillez vous connecter !</p></ng-template>
b- La directive *ngFor
- Rôle : Permet de faire des itérations sur des objets tels qu’un tableau et d’afficher un
élément du DOM à chaque itération.
- Syntaxe : <balise *ngFor="let element of collection">Contenu à rendre.</div>
- Exemple : <ul>
<li *ngIf=" let user of Users ">{{ user.Name }}</li>
</ul>
c- La directive *ngSwitch
- Rôle : Permet de faire des traitements conditionnels. Elle requiert *ngSwitchCase et
*ngSwitchDefault
- Syntaxe : <container_element [ngSwitch]="switch_expression">
<inner_element *ngSwitchCase="match_expresson_1">...</inner_element>
<inner_element *ngSwitchCase="match_expresson_2">...</inner_element>
<inner_element *ngSwitchCase="match_expresson_3">...</inner_element>
<inner_element *ngSwitchDefault>...</element>
</container_element>
- Exemple : <ul [ngSwitch]="num">
<li *ngSwitchCase="'1'">One</li>
<li *ngSwitchCase="'2'">Two</li>
3BI - IHEC | Framework de développement web 2
<li *ngSwitchCase="'3'">Three</li>
<li *ngSwitchCase="'4'">Four</li>
<li *ngSwitchCase="'5'">Five</li>
<li *ngSwitchDefault>This is Default</li>
</ul>
En dehors des directives natives, Angular permet la création de directives personnalisées. La création
d’une directive se fait dans Angular CLI, à l’aide de la commande ng generate directive nom-
directive.
Le décorateur @Directive spécifie, ensuite, le sélecteur qui identifie l’attribut correspondant dans le
template. Enfin, le comportement de la directive sera implémenté dans la classe.
Dans Angular, les directives peuvent agir sur l’architecture du DOM en modifiant l’apparence ou le
comportement des élément HTML. En plus des directives natives du Framework, les développeurs
peuvent créer des directives personnalisées et les appliquer aux élément HTML qu’ils souhaitent
contrôler ou faire interagir avec les évènements de l’utilisateur.