Как позвонить в сервис из события drag & drop в сетке - PullRequest
0 голосов
/ 17 октября 2019

У меня есть 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.

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

1 Ответ

1 голос
/ 17 октября 2019

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

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

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

...