Как вызвать службу из события перетаскивания сетки ag

У меня настроена сетка ag с параметрами для запуска событий перетаскивания:

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.

Я знаю, что служба определена и работает правильно, doSomething можно вызвать из функции init компонента сетки, поэтому я просто не уверен, как я могу вызвать что-то внешнее по отношению к сетке или какой-либо обходной путь?


person yoyoma    schedule 17.10.2019    source источник


Ответы (1)


Стрелочные функции будут выполняться в своем лексическом контексте независимо от вызывающего. Попробуй это:

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

Изменить: я обновил этот ответ, чтобы вы могли передать параметры из события своему обработчику.

person Damian C    schedule 17.10.2019