使用htmlService / html模板显示GoogleScript UiApp

时间:2012-08-26 04:59:43

标签: google-apps-script

我有一个UiApp,可以创建一些将数据写入特定电子表格的表单元素。现在我想将UiApp小部件加载到htmlService模板中,我不知道该怎么做。

我的doGet函数加载基本模板,而doGetApp构建UiApp:

function doGet() {
  return HtmlService.createTemplateFromFile('base_template').evaluate();
}
function doGetApp() {
  // creates input forms for a spreadsheet (the following is just an example
  var app = UiApp.createApplication();
  var tabPanel = app.createDecoratedTabPanel();
  var flowPanel1 = app.createFlowPanel();
  var flowPanel2 = app.createFlowPanel();

  tabPanel.add(flowPanel1, "Create New Projects");
  tabPanel.add(flowPanel2, "Edit Projects");
  app.add(tabPanel);

  // return app; // <<<< original doGet function returned the app

  // testing different ways of returning the UiApp 
  return HtmlService.createHtmlOutput(app); // this displays the text "HtmlOutput"
}

我的base_html模板现在非常简单:

<html >
<?!= getCSS("css_js"); ?>
  <body>
  <h1>Template Test</h1>
  <?!= doGetApp(); ?>
  </body>
</html>

我已经尝试了一些变体,但结果通常是相同的:文本输出似乎描述了对象,而不是显示UiApp。 (getCSS函数工作正常)

目标是能够轻松加载我自己的一些css / js以及UiApp,以便轻松设置表单/结果内容的样式。我对此很陌生,所以我完全有可能以错误的方式接近这一点。感谢任何指针。谢谢!

-Greg

1 个答案:

答案 0 :(得分:2)

现在,您要么使用html服务,要么使用uiapp - 您无法将两者结合使用