Encontré un ejemplo de función de llamada en innerHtml https://stackblitz.com/edit/angular-innerhtml-examples , pero no sé qué hacer, si la función necesita una variable, que solo es aceptable desde el controlador:
constructor(private elementRef: ElementRef, private sanitizer: DomSanitizer) { const currentString = "green"; this.content = this.sanitizer.bypassSecurityTrustHtml( '<button type="button" id="submitButton" (click)="openWindow()">Submit</buttn>' ); } openWindow(string) { alert(string); }Intente agregar su variable como un parámetro para addEventListener('click',someEventHander.bind(this, param1)) .
Consulte este ejemplo de stackblitz: https://stackblitz.com/edit/angular-innerhtml-examples-hdw7xs?file=src%2Fapp%2Fapp.component.ts
También puede consultar: https://www.codegrepper.com/code-examples/javascript/addeventlistener+with+arguments+in+angular+8
También es una forma mejor/limpia de usar bypassSecurityTrustHtml en una tubería angular y luego llamarlo desde [innerHtml] . Adapté el ejemplo anterior de stackblitz para usarlo de esta manera.
Y finalmente, use console.log() en lugar de alert() al depurar una aplicación. por la razón y más detalles: ¿Por qué se considera que console.log() es mejor que alert()?