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

How to call a service from ag grid drag & drop event

我设置了一个 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 可以从网格组件的初始化函数调用,所以我只是不确定如何调用网格外部的东西或任何解决方法?

无论调用者如何,箭头函数都将在其词法上下文中执行。试试这个:

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

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