Передать дополнительные параметры в функцию источника автозаполнения - PullRequest
0 голосов
/ 21 мая 2018

Я реализую Ajax с автозаполнением HandsOnTable, как описано здесь: https://docs.handsontable.com/3.0.0/demo-autocomplete.html#strict-ajax

Но я бы хотел передать дополнительный параметр в функцию автозаполнения source, что-то вроде row.id ниже:

hot3 = new Handsontable(container3, {
    data: getCarData(),
    colHeaders: ['Car', 'Year', 'Chassis color', 'Bumper color'],
    columns: [
      {
        type: 'autocomplete',
        source: function (query, process, row.id) {
          $.ajax({
            //url: 'php/cars.php', // commented out because our website is hosted as a set of static pages
            url: 'scripts/json/autocomplete.json',
            dataType: 'json',
            data: {
              query: query
            },

Из документации , source функция принимает только два параметра (query и process), кто-нибудь знает, как я могу передать дополнительные параметры?

1 Ответ

0 голосов
/ 01 июня 2018

Вы не можете добавить аргумент к функции source.Он не «принимает» параметры, он обеспечивает.Эта функция вызывается изнутри Handsontable с предопределенными аргументами.

Но вы все равно можете получить доступ к данным, которые вы ищете.Проверьте контекст, с которым вызывается функция source.Это ColumnSettings объект, который содержит (помимо прочего) идентификаторы столбцов и строк.

Что-то вроде:

columns: [
  {
    type: 'autocomplete',
    source: function (query, process) {
      var rowId = this.row;
      var columnId = this.col;

      $.ajax({
        ... // do whatever you want
      });
    }
  }
]
...