如何在 GAS 中嵌套模板

问题描述 投票:0回答:1

我正在对自己进行从 Cold Fusion 到 Google Apps Scripts 的交叉训练。一切进展顺利,直到我尝试调用嵌套在另一个相同函数中的 createTemplateFromFile 函数。我是在尝试做不可能的事情还是可以完成。

我的目标是打电话给:-

htmlhead.html - 这只包含静态 html

bodystart.html - 这只包含静态 html

mainmenu.html - 这需要用户上下文和获取/发布值以显示所需级别的菜单

contentswitcher.html - 这需要点击获取/发布值并响应所需的数据或表单 html 代码

pagefooter.html - 这会响应页面调用日期/时间和运行所需的时间

bodyandhtmlend.html - 这只包含静态 html

每个文件都可以包含小脚本,这些小脚本可以自己运行,也可以在 Code.gs 文件之类的文件中调用函数,因此需要对它们进行评估。我可以成功地编写和测试其中任何一个。到目前为止,我可以评估它们并自行输出它们,但我无法将它们加入/连接到一个输出页面中。我在说明或问答中找不到任何暗示它甚至是一个好/可能的想法的内容。我看错地方了吗?指向不同方法的指针会像任何东西一样受欢迎。

非常感谢。

google-apps-script evaluate
1个回答
0
投票

您可以将此函数复制到您的 .gs 文件中:


function include(yourHtmlFile) {
  return HtmlService.createHtmlOutputFromFile(yourHtmlFile)
      .getContent();
}

...并创建包含模板的单个 index.html 文件。现在,您可以将模板放入 index.html

<!-- This goes into <head> -->
<div>
  <?!= include('htmlhead'); ?>
</div>

<!-- This goes into <body> -->
<div>
  <?!= include('bodystart'); ?>
</div>
<div>
  <?!= include('mainmenu'); ?>
</div>
<div>
  <?!= include('contentswitcher'); ?>
</div>
<div>
  <?!= include('pagefooter'); ?>
</div>
<div>
  <?!= include('bodyandhtmlend'); ?>
</div>

您也可以单独导入一些JavaScript代码,但将其保存在带有常规标签的html文件中(而不是.gs文件中)。

© www.soinside.com 2019 - 2024. All rights reserved.