Retour au cours

Utilisation de variables de référence locales pour l'interaction

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

67. Utilisation de variables de référence locales pour l'interaction

Nous avons déjà vu les variables de référence locales (#input) sur les éléments du DOM. Elles peuvent aussi être utilisées pour référencer directement des instances de composants enfants dans le template du parent, permettant à ce dernier d'appeler des méthodes publiques de l'enfant.

Scénario : Le Parent appelle une méthode de l'Enfant

Imaginons qu'un VideoPlayerComponent (enfant) possède une méthode publique play() que le VideoDashboardComponent (parent) souhaite déclencher via un bouton.

1. Définir une méthode publique dans l'Enfant

typescript // video-player.component.ts (Enfant) export class VideoPlayerComponent { isPlaying: boolean = false;

play(): void { this.isPlaying = true; console.log('Lecture vidéo...'); } }

2. Définir la référence et appeler la méthode dans le template Parent

Le template parent assigne une variable de référence à la balise du composant enfant, accédant ainsi à son instance.

html

<app-video-player #player>

<button (click)="player.play()"> Démarrer la vidéo

Statut vidéo : En cours

Quand utiliser ce pattern ?

Cette méthode est efficace pour appeler des actions impératives simples sur l'enfant (ex : reset(), focus(), open()). Pour passer des données ou pour une gestion d'état complexe, @Input/@Output ou les Services restent privilégiés.