📢 Je vous présente le livre Angular

  • 1) Il offre un contenu clair et concis, tout en couvrant une multitude de concepts d'Angular.
  • 2) Le livre est structurĂ© en trois niveaux : dĂ©butant, intermĂ©diaire et avancĂ©
  • 3) traite des pratiques les plus rĂ©centes d'Angular, comme les signaux, les vues diffĂ©rĂ©es, la gestion des flux, entre autres
  • 4) De plus, vous y trouverez plusieurs liens vers des exemples de code source pour approfondir vos connaissances en pratique.

Skip to content

Comment utiliser ngAfterViewInit dans Angular ? ​

ngAfterViewInit est un hook de cycle de vie Angular qui est appelé une fois après que les vues du composant et de ses enfants ont été initialisées. Vous pouvez l'utiliser pour effectuer des tâches d'initialisation qui dépendent des vues du composant.

Voici comment utiliser ngAfterViewInit dans votre composant Angular :

  1. Importez l'interface AfterViewInit dans votre composant :
ts
import { Component, AfterViewInit } from '@angular/core';
  1. Faites en sorte que votre composant implémente l'interface AfterViewInit :
ts
export class MyComponent implements AfterViewInit {
  // ...
}
  1. Implémentez la méthode ngAfterViewInit dans votre composant :
ts
ngAfterViewInit() {
  // Cette méthode sera appelée une fois après que les vues du composant et de ses enfants
  // ont été initialisées. Vous pouvez y mettre votre code d'initialisation ici.
}

Voici un exemple de composant qui utilise ngAfterViewInit :

ts
import { Component, AfterViewInit } from '@angular/core';

@Component({
  selector: 'app-my-component',
  template: `
    <h1>Mon composant</h1>
    <p>{{ message }}</p>
  `,
})
export class MyComponent implements AfterViewInit {
  message = 'Salut !';

  ngAfterViewInit() {
    console.log('Les vues du composant ont été initialisées !');
  }
}

Vous pouvez utiliser ngAfterViewInit dans votre template de composant comme ceci :

html
<app-my-component></app-my-component>

Lorsque le composant sera initialisé, la méthode ngAfterViewInit sera appelée une fois et le message "Les vues du composant ont été initialisées !" sera affiché dans la console.

Exemple utile avec ElementRef ​

Voici un exemple d'utilisation de ngAfterViewInit avec ElementRef dans un composant Angular :

ts
import { Component, AfterViewInit, ElementRef } from '@angular/core';

@Component({
  selector: 'app-my-component',
  template: `
    <h1>Mon composant</h1>
    <p #message>Salut !</p>
  `,
})
export class MyComponent implements AfterViewInit {
  @ViewChild('message') messageEl: ElementRef;

  ngAfterViewInit() {
    console.log(`Le texte du message est "${this.messageEl.nativeElement.textContent}"`);
  }
}

Dans cet exemple, nous avons utilisé la décorateur @ViewChild pour récupérer une référence à l'élément <p> avec l'attribut #message dans le template du composant. Nous avons ensuite utilisé l'objet ElementRef dans la méthode ngAfterViewInit pour accéder au texte du message.

Lorsque le composant sera initialisé, la méthode ngAfterViewInit sera appelée une fois et le texte du message sera affiché dans la console.

Chaque mois, recevez en avant-première notre newsletter avec les dernières actualités, tutoriels, astuces et ressources Angular directement par email !