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

时间:2019-10-17 13:23:21

标签: angular ag-grid-angular angular-grid

我在ag-grid上设置了触发拖放事件的选项:

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

我也有一个简单的服务

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

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

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

1 个答案:

答案 0 :(得分:1)

箭头函数将在其词法上下文中执行,而与调用者无关。试试这个:

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

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