在模板中使用或声明

时间:2016-06-29 23:16:32

标签: google-apps-script

以下是我试图评估的模板:

<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评估为&#34;未定义&#34;?

例如:

var someObj = {};
somObj.exampleId  // ===> undefined

someObj.examplId || 'hello world' // ===> 'hello world'

为什么模板不评估表达式?

1 个答案:

答案 0 :(得分:1)

来自文档:

  

在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>

在控制台中产生错误。