我正在阅读https://developers.google.com/apps-script/guides/html/templates,试图将变量传递给模板。我想出了:
var html = HtmlService.createTemplateFromFile('RowPopup');
html.row = sendableRow;
var h =html.evaluate();
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showModalDialog(h, 'Create Documents');
会产生预期的没有错误的弹出窗口。在模板本身中,我具有一些JS / jquery函数,例如以下这些,我希望能够与传入的数据进行交互:
function buildOptionList(options) {
var list = $('#optionList');
list.empty();
for (var i = 0; i < options.length; i++) {
console.log(options[i]);
list.append('<option value="' + options[i].toLowerCase() + '">' + options[i] + '</option>');
}
但是我找不到如何从页面中访问附加到模板的变量“行”。我该怎么做?
答案 0 :(得分:1)
当您致电.evaluate()
时,Google会根据您提供的文件和变量创建一个HTML文档。它知道使用<?= row ?>
之类的printing scriptlets来评估哪些部分。在将评估发送给客户端进行显示之前,先完成评估。您可以should just be able to使用row
进行访问,如链接代码示例所示。
var html = HtmlService.createTemplateFromFile('RowPopup');
html.row = sendableRow;
var h =html.evaluate();
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showModalDialog(h, 'Create Documents');
//In the HTML file.
<body>
<?= row ?>
</body>
相反,您可能对client-to-server communication感兴趣,以便在HTML加载后获取数据。