Retour au cours

Directives personnalisées (Structurelles et d'Attribut)

Le Développeur Angular Complet : de Zéro à Héros

62. Directives personnalisées (Structurelles et d'Attribut)

Nous avons utilisé des directives intégrées comme NgIf et NgClass. Nous allons maintenant apprendre à créer les nôtres pour abstraire des manipulations DOM communes ou une logique d'interface utilisateur.

1. Directives d'attribut personnalisées

Les directives d'attribut modifient l'apparence ou le comportement d'un élément existant.

Exemple : Directive de surbrillance (Highlight)

typescript // highlight.directive.ts import { Directive, ElementRef, HostListener, Input } from '@angular/core';

@Directive({ selector: '[appHighlight]' // Sélecteur HTML :

}) export class HighlightDirective {

// Propriété d'entrée pour définir la couleur dynamiquement @Input('appHighlight') highlightColor: string = 'yellow';

constructor(private el: ElementRef) { }

// Utilisation de HostListener pour écouter les événements sur l'élément hôte @HostListener('mouseenter') onMouseEnter() { this.highlight(this.highlightColor); }

@HostListener('mouseleave') onMouseLeave() { this.highlight(''); }

private highlight(color: string) { this.el.nativeElement.style.backgroundColor = color; } }

Utilisation :

html

Survolez ce texte.

2. Directives structurelles personnalisées

Les directives structurelles (*) modifient la structure du DOM, nécessitant une interaction avec TemplateRef et ViewContainerRef.

Nous dédierons la leçon suivante à la création d'une directive structurelle personnalisée (type *NgIf), car elle est nettement plus complexe.