将变量推送到Google App Script中的模板时出错

时间:2014-09-25 06:27:52

标签: google-apps-script

我正在尝试将数组对象推送到HTMLService生成的模板,以便我可以填充下拉框。

我的函数showSidebar()onOpen()函数中调用。

showSideBar()

/**
 * Opens a sidebar in the document containing the add-on's user interface.
 */
function showSidebar() {
  var ui = HtmlService.createHtmlOutputFromFile('Sidebar')
      .setTitle('Generate Reports');
  SpreadsheetApp.getUi().showSidebar(ui);
}

HTML文件Sidebar.html的内容是

<div class="sidebar branding-below">
  <form>
    <div class="block col-contain">
      <div class="block form-group">
         <label for="client-dd"><b>Client Name</b></label><br />
         <select id="client-dd" class="width-100">
         <? var data = getUniqueCustomers();
            for (var i = 0; i < data.length; i++) 
            { 
               var val = data[i]; 
               var v = val[0]; ?>
               <option value='<?!= v ?>'>
                  <?!=v ?>
               </option>
         <? } ?>
         </select>
      </div>
    </div>
  </form>
</div>

函数getUniqueCustomers()(我知道它有效,因为我测试了它)如下

function getUniqueCustomers(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var rangeVals = sheet.getRange("E2:E");
  var x = ArrayLib.unique(rangeVals.getValues());
  return x;
}

但由于某种原因,我在侧栏中看到以下内容

enter image description here

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您正在尝试使用模板化HTML - 为此您需要使用 HtmlService.createTemplateFromFile()方法而不是.createHtmlOutputFromFile()。 Full documentation here