这是我要评估的模板:
<div class='block'>
<h4> Info </h4>
<input type="text" value='<?= exampleId || "" ?>' id="example-id">
<br>
<label for="name">Name</label>
<input type='text' id='name' value='<?= name || "" ?>'>
</div>
我跑:
HtmlService.createTemplateFromFile('Index').evaluate()
此行代码崩溃,并在下面说明了参考错误。
在我的模板中,我尝试使用OR语句,例如:
<?= exampleId || "" ?>
我收到一条错误消息,指出exampleId
未找到参考错误。
不会exampleId
评估为“未定义”吗?
前任:
var someObj = {};
somObj.exampleId // ===> undefined
someObj.examplId || 'hello world' // ===> 'hello world'
模板为什么不评估表达式?
引用文档:
在scriptlet内,您可以编写可在普通Apps脚本文件中工作的任何代码:
如果此代码在代码编辑器中运行:
function test() {
return exampleId || "";
}
function runThis() {
Logger.log(test())
}
它产生一个错误。
唯一的方法是:
<?= exampleId || "" ?>
如果exampleId
声明为全局变量,它将起作用。
var exampleId;//Declared outside of any function block
回到该示例,即使存在未定义的测试:
if (exampleId===undefined) {return ""};
代码编辑器中仍然存在错误。
因此,它不会在代码编辑器中运行。
我想测试它是否可以在浏览器中运行:
<script>
exampleId || "";
</script>
这会在控制台中产生错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句