应用脚本中附加到模板的访问变量

时间:2019-02-14 16:09:36

标签: google-apps-script

我正在阅读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>');
        }

但是我找不到如何从页面中访问附加到模板的变量“行”。我该怎么做?

1 个答案:

答案 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加载后获取数据。