我正在使用带有ag-grid数据表的Angular 5
我无法使用cellRenderer从单元格触发点击事件,这里如何使用我的ag-grid-> colDefs

this.columnDefs = [
            {headerName: '#', rowDrag: true, width: 75},
            {headerName: 'One', field: 'fieldName',
                cellRenderer : function(params){
                    return '<div><button (click)="drop()">Click</button></div>'
                }
            }
];

drop() {
    alert("BUTTON CLICKEFD")
}

如果正在使用onClick="alert("123")"->可以,
但是我无法使用onClick="drop()",它会抛出未定义的信息,

我也在cellRenderer内部尝试过-> params = params.$scope.drop = this.drop;
如果将GridOptions与angularCompileRows : true一起使用,则会引发错误Cannot read property '$apply' of undefined.我需要安装ag-grid enterprise吗?

最佳答案

您可以将cellRenderer与按钮组件一起使用。
如果要从表中的用户获取按钮上的click事件,只需将要声明的回调函数声明为cellRendererParams

// app.component.ts
columnDefs = [
{
  headerName: 'Button Col 1',
  cellRenderer: 'buttonRenderer',
  cellRendererParams: {
    onClick: this.onBtnClick.bind(this),
    label: 'Click'
  }
},
...
]

上面的代码只是一小部分,请查看Stackblitz上的完整示例

10-07 18:16
查看更多