(单击)=“foo()”在数据表中不起作用

时间:2017-07-06 09:23:46

标签: javascript angular

以下是我的以下数据表代码

datatable [options]="{
   colReorder: true,
   ajax: 'assets/api/tables/admin-list.json',
   columns: [ 
      {data: 'id'},
      {data: 'name'}, 
      {data: 'username'}, 
      {data: 'adminRole'},
      {data: 'siteId'},
      {defaultContent: '<button **(click)=\'foo()\'**>Edit</button>'},
      {defaultContent: '<button>Delete</button>'} 
  ]}"
  paginationLength="true" 
  tableClass="table table-striped table-bordered table-hover" 
  width="100%">

在此代码中,角点击事件不是绑定

我被困在这一部分 任何解决方案..?

1 个答案:

答案 0 :(得分:1)

这不起作用,因为angular不能绑定到click,因为代码是动态生成的,而Angular的编译器不会将其编译为Angular组件,它将成为正常的html(字符串)。 / p>

您最好的解决方案是以正常的JavaScript方式使用<button onCLick="foo()">

或者您可以为它们分配一个类,然后将addEventListener用于这些类。

 <button class="myButtons">

在组件类中:

ngAfterViewInit(){

   document.getElementsBytClassName('myButtons').addEventListener('click',foo)
}

否则你必须朝着使用viewContainer的方向前进,并动态地将按钮作为模板加载,这可能会非常痛苦。