В документах для HtmlService не указано, что это не должно работать, но похоже, что шаблонный подход ограничен проектами приложений для приложений веб-приложений.Сценарий Google Apps - служба HTML «createTemplateFromFile» недоступна из приложения (электронная таблица и т. Д.)?
Я пытаюсь использовать HTMLService для создания пользовательского интерфейса внутри SpreadSheet, который может принимать некоторый начальный контекст, а затем взаимодействовать с листом. Однако при попытке использовать «createTemplateFromFile» из сценария сценария приложений на листе возникает ошибка времени выполнения.
«changeDialog», упоминаемый ниже, является простым файлом в проекте Apps Script с заполнителем разметке:
<h2> fieldName </h2>
Следующий код генерирует исключение «Недопустимый аргумент пользовательским интерфейсом» при вызове:
function showSidebar(){
var html = HtmlService.createTemplateFromFile('changeDialog');
html.evaluate();
SpreadsheetApp.getUi()
.showSidebar(html);
}
UPDATE: Обновлен с фактическим кодом, который не работал. И ... ответил Могсдад. Все документы шаблона показывают вариант веб-страницы, а метод «doGet()» возвращает результаты «.evaluate()». Я думал, что объект html несет внутреннее состояние метода «оценить». Я, оказывается, что вы либо набор, который приведет к другому вар, или просто сделать вызов в строке в методе .showSideBar (...):
SpreadsheetApp.getUi()
.showSidebar(html.evaluate());
или ...
var evaluatedHtml = html.evaluate();
SpreadsheetApp.getUi()
.showSidebar(evaluatedHtml);
Я забыл включить это в примечание выше, и он все еще порождал ошибки ... пока я не посмотрел образцы для варианта веб-страницы. Я просто вызывал «.evaluate», а затем передавал «html» в метод. Я не понял, что .showSideBar и showModalDialog хотят получить результат .evaluate. Спасибо, что поймал это. –
FYI - Я просто отлаживал простейший HTML. У меня обязательно будут встроенные переменные, код, обратные вызовы и т. Д. –