Rechercher un élément par nom de classe dans Angular

Rana Hasnain Khan 15 février 2024
Rechercher un élément par nom de classe dans Angular

Nous présenterons ElementRef et comment l’utiliser pour trouver des éléments par nom de classe dans Angular.

Utilisation de ElementRef pour rechercher une classe par nom dans Angular

ElementRef est un wrapper d’objet d’élément DOM natif contenant la propriété nativeElement. Il contient la référence à l’élément DOM et l’utilise pour manipuler le DOM.

Il est utilisé avec ViewChild pour obtenir l’élément HTML de la classe du composant. Passons en revue un exemple pour comprendre l’utilisation de l’objet ElementRef.

Créez une nouvelle application dans Angular en utilisant la commande suivante.

# angular
ng new my-app

Après avoir créé l’application, accédez au répertoire de l’application à l’aide de cette commande.

# angular
cd my-app

Exécutons notre application pour vérifier si toutes les dépendances sont correctement installées.

# angular
ng serve --open

Tout d’abord, nous devons importer ViewChild, ElementRef avec Component et AfterViewInit de @angular/core dans le fichier app.component.ts.

Après les avoir importés dans notre classe, créez un ElByClassName privé dans le constructeur et une fonction ngAfterViewInit qui enregistrera l’élément que nous obtenons par nom de classe en utilisant <HTMLElement>.

Une fois que nous avons l’élément que nous voulions, nous pouvons maintenant changer le nom du bouton en utilisant innerHTML. Notre code dans app.component.ts ressemblera à ci-dessous.

# angular
import { Component, ElementRef, ViewChild } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
name = 'Angular';
constructor(private ElByClassName: ElementRef) {}
ngAfterViewInit() {
const btnElement = (<HTMLElement>this.ElByClassName.nativeElement).querySelector(
'.myButton'
);
btnElement.innerHTML = 'This is Button';
}
}

Nous devons créer un modèle de bouton dans app.component.html avec la classe myButton.

# angular
<button class="myButton">My Button</button>

Production:

trouver un élément par nom de classe dans Angular

En utilisant ces étapes simples, nous pouvons manipuler n’importe quel élément DOM en utilisant son ElementRef.

Si nous voulons remplacer l’élément au lieu de simplement changer le nom du bouton, nous pouvons utiliser outerHTML.

Dans ngAfterViewInit(), écrivez le code suivant pour remplacer le bouton par un titre.

# Angular
btnElement.outerHTML = '<h1>This is Heading</h1>';

Production:

trouver l&rsquo;élément par nom de classe dans Angular et le remplacer

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

Article connexe - Angular Element