0

我正在尝试为 ag-grid 表中的元素列表添加一个删除按钮。

我为按钮创建了一个组件,我可以删除该行

...

export class AgGridButtonDeleteComponent implements ICellRendererAngularComp

...

deleteFunc(){
    this.params.api.selectIndex(this.params.node.rowIndex);
    var selectedData = this.params.api.getSelectedRows();
    this.params.api.updateRowData({remove: selectedData});

...

但我还需要调用服务来实际删除数据,所以我尝试将服务包含在按钮组件中

this.myService.deleteRow(this.value).subscribe(
response => {
    if(response){
        this.params.api.selectIndex(this.params.node.rowIndex);
        var selectedData = this.params.api.getSelectedRows();
        this.params.api.updateRowData({remove: selectedData}); 
    }
}

);

但我收到此错误:属性“deleteButtonRenderer”与索引签名不兼容。“typeof AgGridButtonDeleteComponent”类型与“new () => any”类型不可比较。

关于我该怎么做的任何建议?我正在使用 ag-grid 16.0.0 和 angular 6,我发现的所有示例都是针对 angular 1

谢谢你

4

1 回答 1

2

一个可能的解决方案是:

在列定义添加

onCellClicked: function (params) {
 this.deleteRow(params.data.Id)
 params.api.selectIndex(params.node.rowIndex);
 var selectedData = params.api.getSelectedRows();
 params.api.updateRowData({remove: selectedData}); 
}.bind(this)

记得绑定(this)否则deleteRow函数不可见

于 2018-04-30T15:47:39.353 回答