嗨我想知道这是否是预期的行为:
<html>
<head>
</head>
<body>
<?if(a){
Logger.log("a ="+a)?>
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Id</th>
</tr>
<tr>
<td><input type='text' name=firstName id='firstNameToEdit' /></td>
<td><input type='text' name=lastName id='lastNameToEdit' /></td>
<td><label id='down_id'></label></td>
</tr>
</table>
<?}else{Logger.log("a="+a)}?>
</body>
</html>
当定义a时,我得到日志中a的值,并且每个事件都按预期显示 但当我离开未定义时,执行似乎停止在if(a)并且log没有显示任何内容。
我像这样提供html:
var t = HtmlService.createTemplateFromFile('test');
return t.evaluate();
当我这样服务时:
var t = HtmlService.createTemplateFromFile('test');
t.a = b;
return t.evaluate();
where(b:{undefined,null}) 然后,如果我记录html模板内部的值,我得到a = null(在两种情况下)。 看来你不能在模板中有一个未定义的变量。
P.S。我真的很感激在编辑器中关闭自动识别的方法
答案 0 :(得分:1)
如果在编辑器中运行doGet()方法,则应该看到错误:
ReferenceError:未定义“a”。
在JavaScript中,您无法引用不存在的变量。要解决此问题,您可以将if情况更改为:
<? if (this.a) {
由于this
始终被定义为当前对象/范围。