如何从 ag 网格拖放事件调用服务



>我有一个 ag-grid 设置了触发拖放事件的选项:

this.gridOptions = {
columnDefs: this.getColumnDefs(),
rowDragManaged: true,
onRowDragEnter: this.onRowDragEnter,
onRowDragEnd: this.onRowDragEnd,
...

我也有一个简单的服务

export class myService {
...
public doSomething(): void {
...
}
}

似乎我无法从onRowDragEnd事件中调用doSomething服务函数 - 收到cannot read property 'doSomething' of undefined... at Object.onRowDragEnd错误。

我知道该服务已定义且工作正常,doSomething可以从网格组件的 init 函数调用,所以我只是不确定如何调用网格外部的东西或任何解决方法?

Arrow 函数将在其词法上下文中执行,而不考虑调用方。试试这个:

this.gridOptions = {
columnDefs: this.getColumnDefs(),
rowDragManaged: true,
onRowDragEnter: (event: RowDragEvent) => {
this.onRowDragEnter(event);
},
onRowDragEnd: (event: RowDragEvent) => {
this.onRowDragEnd(event);
}
...

编辑:我更新了这个答案,以便您可以将参数从事件传递给您的处理程序。

最新更新