【问题标题】:Onclick event not working in dynamic html string in angular 6Onclick 事件在角度 6 中的动态 html 字符串中不起作用
【发布时间】:2019-03-19 05:55:19
【问题描述】:

我试图通过添加 onclick 事件和按钮类来操作动态 html 字符串。但不幸的是,它不适用于 Angular 6,但它与 Angular 1 和 Javascript 完美搭配......

下面是我的代码。

  getUnitTestmethod() {

    const htmlObject = document.createElement('div');
    htmlObject.innerHTML = this.unit;
    const btnClarify = htmlObject.getElementsByClassName('customizeclarify');

    let j = btnClarify.length;
    let parentclr;
    let currInputElmclr;
    while (j--) {
        const countNo = 0;

        currInputElmclr = this.renderer.createElement('button');
        this.renderer.setProperty(currInputElmclr, 'id', 'popup');
        this.renderer.setProperty(currInputElmclr, 'innerText', 'TestButtonText');
        this.renderer.setProperty(currInputElmclr, '(click)', 'ShowAlert()');
        this.renderer.setProperty(currInputElmclr, 'class', 'btn btn-success');

        parentclr = btnClarify[j].parentNode;
        parentclr.insertBefore(currInputElmclr, btnClarify[j]);
        parentclr.removeChild(btnClarify[j]);

      }
      this.unit = htmlObject.innerHTML;
}

【问题讨论】:

标签: javascript angular typescript angular6 dynamic-html


【解决方案1】:

正如@amansoni211 所提到的,您可以创建一个指令并为其添加一个主机侦听器。回到你的设置,如果你想为你的目标添加事件监听器,你可以通过this.renderer.listen('click', target);来完成。

【讨论】:

  • 你能不能创建一个stackblitz,我去看看。
猜你喜欢
  • 2020-02-26
  • 1970-01-01
  • 2020-07-19
  • 2021-08-12
  • 1970-01-01
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多