Установить обратный вызов для метода класса - PullRequest
0 голосов
/ 08 ноября 2018

Для Slickgrid,

Обычно вы можете установить обратный вызов dateFormatter таким образом в columns переменных.

var columns = [
   {id: "finish", name: "Finish", field: "finish", 
    formatter: dateFormatter, // path callback name to table 
    sortable: true }
  ];

function dateFormatter(row, cell, value, columnDef, dataContext) {
    return value.getMonth() + '/' + value.getDate() + '/' + value.getFullYear();
}

Теперь я создал класс, который содержал член и метод, относящиеся к обработке таблицы.

Затем я хочу поймать dateFormatter обратный вызов в методе класса. Как установить обратный вызов ??

class Table{
   constructor(){
      this.columns = [
   { id: "finish", name: "Finish", 
     field: "finish", 
     formatter: `this.dateFormatter`}, // it doesn’t work
  ];
      this.data = new Array();
      this.dataView = new Data.DataView();
      this.grid; 
   }
   makeGrid(gridName){
      this.grid = new Grid(gridName,
      this.dataView, 
      this.columns,
      this.options);
   }
   dateFormatter(row, cell, value, columnDef, dataContext) { // want to catch here.
        return value.getMonth() + '/' + value.getDate() + '/' + value.getFullYear();
   }
}    

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

В вашем конструкторе:

this.columns = [
   { id: "finish", name: "Finish", 
     field: "finish", 
     formatter: this.dateFormatter} // no need for back-ticks
  ];

Нет необходимости в back ticks в this.dateFormatter, который преобразует его в строку.

0 голосов
/ 08 ноября 2018

Вы пытаетесь передать ссылку на функцию в виде буквенной строки шаблона.

Изменение

formatter: `this.dateFormatter`

К

formatter: this.dateFormatter
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...