Невозможно выполнить функцию в контекстном меню - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь вызвать функцию в моем контекстном меню.

getContextMenuItems(params) {
    console.log(params.node.data)
    var result = [

      {
        name: "Delete",
        action : function () { 
         this.deletePriceFactor(params.node.data);
        }
        ,
        cssClasses: ["redFont", "bold"]
      },
      {
        name: "Audit"
      }

    ]
      return result;
    }

 deletePriceFactor = (rowdata)  =>{
    this.priceFactorService.deleteEntry(rowdata.exchangeCode, rowdata.productCode, rowdata.secType).subscribe(pricefactors => {
    });

  }

Я получаю сообщение об ошибке: ERROR TypeError: this.deletePriceFactor не является функцией в Object.action (price-factor.component.ts: 162)

Я пытался использоватьСтрелка работает следующим образом:

action : () =>  { 
         this.deletePriceFactor(params.node.data);
        }

Выше приведено еще одно сообщение об ошибке: core.js: 1673 ОШИБКА TypeError: Невозможно прочитать свойство 'deletePriceFactor' из неопределенного

1 Ответ

0 голосов
/ 01 июля 2019

если ваш html похож на:

<ag-grid-angular
      [getContextMenuItems]="getContextMenuItems"
      .
      .
      .
    ></ag-grid-angular>

тогда функция getContextMenuItems должна быть записана так:

getContextMenuItems = (params) => {
}

Следовательно, ключевое слово this указывает на ваш компонент.

После этого вызовите ваш метод как:

action : () => this.deletePriceFactor(params.node.data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...