Tengo que agregar un evento de clic en un elemento de anclaje que pueda cargarse más tarde. Sé que en javascript puedo hacer esto.
document.addEventListener('click', function(e){ if(e.target && e.target.id== 'myDynamicallyAddedElementID'){ //do something } });Pero necesito hacer In Typescript en angular y estoy intentando así,
document.addEventListener("click", function (e) { try { let id = e.target && (e.target as HTMLAnchorElement).id; console.log(id) if (id == 'lnkCheck') { alert('Hi'); } } catch (error) { } })Pero no funciona, también ¿Cómo puedo verificar si el objetivo es una etiqueta de anclaje?
cualquier ayuda, muy apreciada,
ACTUALIZAR
el código anterior funciona, el único problema fue que estaba haciendo clic en el lugar equivocado
Gracias
Si está seguro de que el elemento estará en el DOM con la identificación dada, entonces esto se puede implementar con la ayuda de la interfaz AfterViewInit en el componente, algo como esto.
import { Component, OnInit, AfterViewInit } from '@angular/core'; @Component({ selector: 'my-app', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], }) export class AppComponent implements OnInit, AfterViewInit { constructor() {} ngOnInit() { } ngAfterViewInit() { document.addEventListener('click', function (e) { try { let id = e.target && (e.target as HTMLAnchorElement).id; console.log(id); if (id == 'lnkCheck') { alert('Hi'); } } catch (error) {} }); } }document.addEventListener("click", function (e) { const target = e.target; if (target instanceof HTMLElement) { if (target.tagName === 'A' && target.id === 'lnkCheck') { alert('Hi'); } } })¿Es esto lo que quieres?