Apps Script WebApp не обрабатывает параметр последовательно - PullRequest
0 голосов
/ 26 мая 2020

У меня есть автономный скрипт приложений Google, который используется для отображения таблицы данных и редактирования записей. Две страницы загружаются с использованием параметров в конце URL-адреса. У меня есть два возможных параметра {edit, entry}. Первое редактирование параметра может иметь только одно значение "form", чтобы указать, что мне нужен доступ к странице редактирования, и номер записи используется для идентификации записи таблицы, которую нужно редактировать.

function doGet(e) {
  // Retrieve and process any URL parameters, as necessary.
  Logger.log(e.parameter.edit);
  Logger.log(e.parameter.entry);
  Logger.log(e.parameter);
  
  if (e.parameter.edit == "form" & e.parameter.entry) {
    Logger.log("edit");
    return EditEntry(e.parameter.entry);
    
  } else {
    Logger.log("table");
    return LoadTable();
  }  
} 

Как видите , функция doGet проста и будет обслуживать две разные другие функции в зависимости от параметров. Моя проблема в том, что в зависимости от входного значения, функция if может не работать должным образом. Например, URL с "? Edit = form & entry = 4444" дает этот журнал:

Форма информации Информация 5555 Информация {entry = 5555, edit = form} Информация редактировать

URL с "? Edit = test & entry = 5555" дает этот журнал:

Infos test Infos 5555 Infos {entry = 5555, edit = form} Таблица информации

НО URL-адрес с "? Edit = form & entry = 4444" дает этот журнал:

Форма информации Информация 4444 Информация {entry = 4444, edit = form} Таблица информации И не дает мне того, что я ожидал. Как я могу видеть из журнала, это не значит, что запись не существует (она есть ..), но он даже не пытается ее искать. Итак, мой вопрос: почему if (e.parameter.edit == "form" & e.parameter.entry) ИСТИНА для? Edit = test & entry = 5555 и FALSE для? Edit = test & entry = 4444

NB: я мог бы отказаться от параметра edit, как это возможно Возьмите только одно значение, и тогда ошибки не будет вообще, но мой путь разработки потребует от меня передачи другого параметра, поэтому он мне нужен ...

Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 26 мая 2020

Попробуйте следующее:

function doGet(e) {
  if (e.parameter.edit == "form" && e.parameter.entry) {
    return EditEntry(e.parameter.entry);
  } else {
    return LoadTable();
  }  
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...