Búsqueda de elementos por nombre de clase en Angular

Rana Hasnain Khan 23 mayo 2022
Búsqueda de elementos por nombre de clase en Angular

Presentaremos ElementRef y cómo usarlo para encontrar elementos por nombre de clase en Angular.

Usando el ElementRef para encontrar la clase por nombre en Angular

ElementRef es un envoltorio de objeto de elemento DOM nativo que contiene la propiedad nativeElement. Contiene la referencia al elemento DOM y lo usa para manipular el DOM.

Se usa con ViewChild para obtener el elemento HTML de la clase del componente. Veamos un ejemplo para entender el uso del objeto ElementRef.

Cree una nueva aplicación en Angular usando el siguiente comando.

# angular
ng new my-app

Después de crear la aplicación, vaya al directorio de la aplicación usando este comando.

# angular
cd my-app

Ejecutemos nuestra aplicación para verificar si todas las dependencias están instaladas correctamente.

# angular
ng serve --open

En primer lugar, debemos importar ViewChild, ElementRef junto con Component y AfterViewInit desde @angular/core en el archivo app.component.ts.

Después de importarlos a nuestra clase, crea un ElByClassName privado en el constructor y una función ngAfterViewInit que guardará el elemento que obtengamos por nombre de clase usando <HTMLElement>.

Una vez que tenemos el elemento que queríamos, ahora podemos cambiar el nombre del botón usando innerHTML. Nuestro código en app.component.ts se verá a continuación.

# 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';
}
}

Necesitamos crear una plantilla de botón en app.component.html con la clase myButton.

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

Producción:

encontrar elemento por nombre de clase en Angular

Usando estos simples pasos, podemos manipular cualquier elemento DOM usando su ElementRef.

Si queremos reemplazar el elemento en lugar de simplemente cambiar el nombre del botón, podemos usar outerHTML.

En ngAfterViewInit(), escriba el siguiente código para reemplazar el botón con un encabezado.

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

Producción:

encuentre el elemento por nombre de clase en Angular y reemplácelo

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

Artículo relacionado - Angular Element