试图弄清楚为什么这不起作用。页面的其余部分加载得很好但是在预期的菜单项中它只是说" HtmlOutput" - 没有按钮,没有链接,只有文字。 mBar div中没有任何内容显示 - 只是文本(" HtmlOutput")。我也尝试过打印并强行打印menuBar.html文件中的scriplet而没有运气。
Code.gs
function doGet(e) {
var html = HtmlService
.createTemplateFromFile('index')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
return html;
}
function include(file, appData) {
var component = HtmlService.createTemplateFromFile(file);
component.data = appData;
return component.evaluate();
}
的index.html
<div id="mainContent" class="w3-hide">
<!-- Menu Bar -->
<?= include('menuBar', oUser)?>
</div>
menuBar.html
<div class="mBar">
<a href="#" class="mBarItem">Select Period</a>
<? if (data.isAdmin == true) { ?>
<a href="#" class="mBarItem">Manage Periods</a>
<a href="#" class="mBarItem">Manage Users</a>
<? } ?>
</div>
答案 0 :(得分:0)
include 函数应返回 string 类型,因此请改为:
function include(file, appData) {
var component = HtmlService.createTemplateFromFile(file);
component.data = appData;
return component.evaluate().getContent();
}
编辑:
此外,您还需要使用force-printing scriptlets以避免转义所包含的HTML代码(请注意“!”符号):
<?!= include('menuBar', oUser)?>