Google Apps Script HTML模板用scriptlet条件渲染报语法错误如何解决?
问题原因
你使用的三元运算符语法不符合Google Apps Script HTML模板的scriptlet书写规则:
- 你将完整的三元表达式拆到了三个独立的scriptlet块中,单独的
<? assigment_letter == "" ? ?>属于不完整的表达式,模板解析时会自动在末尾补充分号,最终生成assigment_letter == "" ? ;的无效代码,触发 unexpected token ';' 语法错误。 <? ?>属于执行类scriptlet,仅运行内部代码不输出内容,你后续的<? : "" ?>也是独立的无效语法片段。
解决方法
推荐优先使用逻辑更清晰的if条件块实现条件渲染,写法如下:
<tbody> <? console.log("assigment_letter: " + assigment_letter)?> <? if (assigment_letter == "") { ?> <tr style="font-size:14px;text-align:center;color:black"> <td style="padding:5px 40px;border: 1px solid #ddd;">Assigment Letter</td> <td style="padding:5px 40px;border: 1px solid #ddd;">NOT FOUND</td> </tr> <? } ?> </tbody>
如果一定要使用三元运算符,需要将完整表达式放在输出类scriptlet(<?= ?>)中:
<tbody> <? console.log("assigment_letter: " + assigment_letter)?> <?= assigment_letter == "" ? ` <tr style="font-size:14px;text-align:center;color:black"> <td style="padding:5px 40px;border: 1px solid #ddd;">Assigment Letter</td> <td style="padding:5px 40px;border: 1px solid #ddd;">NOT FOUND</td> </tr> ` : "" ?> </tbody>
内容的提问来源于stack exchange,提问作者Luis Alberto Delgado de la Flo
相关产品推荐
相关产品推荐

