javascript - 如何使用字符串创建 DOM 元素来使 Angular 单击绑定(bind)起作用?

标签 javascript angular ag-grid

我应该如何在动态添加的 DOM 元素上进行 Angular 绑定(bind)?我正在使用 ag-grid (ng2) 作为数据表。 根据某些条件,我使用不同的列渲染。

      columnDef.cellRenderer = function (params) {
        return `<div><i class='fa ${params.value}'></i></div>`;
      };

在此,我想向图标添加点击功能,如下所示:

      columnDef.cellRenderer = function (params) {
        return `<div><i (click)='iconClicked()' class='fa ${params.value}'></i></div>`;
      };

如何使这些点击绑定(bind)Angular 2中工作?

最佳答案

您可以动态构建组件,如 Equivalent of $compile in Angular 2 中所述。能够通过 Angular 事件和值绑定(bind)传递 HTML。

或者您可以使用命令式事件绑定(bind)

export class MyComponent {
  constructor(private elRef:ElementRef) {}

  someMethod() {
    columnDef.cellRenderer = (params) => {
      return `<div><i id="addClick" class='fa ${params.value}'></i></div>`;
      this.elRef.nativeElement.querySelector('#addClick')
      .addEventListener('click',  this.iconClicked.bind(this));
    };
  }

  iconClicked(e) {
  }
}

关于javascript - 如何使用字符串创建 DOM 元素来使 Angular 单击绑定(bind)起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41788634/

相关文章:

javascript - 异步模板加载 - 如何仅加载一次?

javascript - 如何在单击事件触发时将变量加一

angular - 如何在不丢失 Angular 2/4 中的引用的情况下覆盖对象

angular - Redux 状态缺少来自 redux offline 的 "offline"部分

javascript - 如何使用ag-grid加载动态列和行?

angular - 如何隐藏 Ag-grid 中的过滤器图标?

javascript - 如何在 react 中的两个组件之间移动项目

html - 如何在 UI 中显示时缩进原始 json?

ag-grid - 将 ag-grid 列绑定(bind)到数组

javascript - SetData() 不适用于更改事件 HighCharts 饼图