Quiero agregar una clase a un elemento DOM tomando su referencia. Pero el elemento es creado por una biblioteca y no puedo acceder a él directamente, lo que significa que no puedo usar ViewChild o HostBinding en ese elemento DOM.
Puedo acceder a él directamente usando document.querySelector(<.classname>) y luego agregarle otra clase. Pero es Javascript, ¿verdad? ¿Hay alguna forma de hacerlo en Angular? ¿Cómo hacer la manipulación DOM para un elemento DOM creado dinámicamente que no tiene una identificación o #referencia?
Quiero agregar una clase "oculta" al elemento de capa de imagen de Openlayers. Estoy usando el método anterior, pero ¿cómo hacerlo en angular?
Puedes usar ElementRef . Simplemente inyecte ElementRef en su componente y podrá seleccionar el elemento DOM que desee utilizando su clase. Supongo que el elemento que está buscando ya tiene otra clase a la que puede referirse. Aquí hay una implementación de ejemplo:
import {ElementRef} from '@angular/core'; export class MyClassComponent { constructor(private: elRef: ElementRef) { findMyElement(): void { console.log(this.elRef.nativeElement.querySelector('.myclass')); } } } Tenga en cuenta que querySelector encontrará la primera aparición de este elemento. Por lo tanto, hay que usarlo con precaución.