Передача и возврат массива между HTML и Google Apps Script - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь создать панель поиска для Google Sheet, используя Google Apps Script и HTML.По сути, я беру поисковый ввод пользователя из формы (имя, дата и ключевые слова) и передаю его в мой файл GScript для выполнения поиска.Я хочу массив индексов, содержащих строки листа, которые соответствуют критериям поиска.Я знаю, что настоящая поисковая часть скрипта работает;однако моя проблема возникает при передаче массива целых чисел обратно в HTML.

Прямо сейчас у меня это есть, чтобы я инициализировал пустой массив на стороне HTML моего кода и передал его в GScript.Он должен вернуть массив, а затем я проверяю, является ли длина массива пустой.Тем не менее, я получаю сообщение об ошибке: «Не удается прочитать свойство« length »из нулевого значения.»

function gatherSearch() {

      clearErrorWarnings();

      var responsible = document.getElementById('responsible').value;
      var datefrom = formatDate(document.getElementById('datefrom').value);
      var dateto = formatDate(document.getElementById('dateto').value);
      var description = document.getElementById('description').value;
      var searchRowMatch = [];


      if(checkValidSearch(responsible, datefrom, dateto, description)) {
        searchRowMatch = google.script.run.basicSearch(responsible, datefrom, dateto, description, searchRowMatch);
        if(searchRowMatch.length == 0) {
          noSearchMatch();
        }
      }
    }

Я понимаю, что что-то в GScript работает асинхронно с HTML или что-то в этом роде?Любой указатель в правильном направлении или объяснение того, как это исправить, было бы здорово :) Спасибо!

1 Ответ

0 голосов
/ 02 апреля 2019

EDIT: довольно простое исправление, просто добавлен тег withSuccessHandler ()

if(checkValidSearch(responsible, datefrom, dateto, description)) {
  google.script.run.withSuccessHandler(createTable).basicSearch(responsible, datefrom, dateto, description, searchRowMatch);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...