簡體   English   中英

如何將變量從 Code.gs 傳遞到包含的腳本片段

[英]How to pass variable from Code.gs to included script snippet

所以我知道要在我的 HTML 模板中放置一個變量,我需要做

var html = HtmlService.createTemplateFromFile('Index')    
html.data = data
html = html.evaluate();

然后在 HTML 中調用它

<?= data ?>

但是,如果我包含一個腳本標記片段(在 Code.gs 文件中)

function include(filename) {
   return HtmlService.createHtmlOutputFromFile(filename)
   .getContent();
}

然后在 HTML 中包含我的腳本片段

<?!= include('DataHandler') ?>

如何在 DataHandler 腳本中調用該data變量?

更改include function 以評估數據:

function include(filename, ...otherData) {
  var html = HtmlService.createTemplateFromFile('Index')    
  otherData.forEach(obj => html[obj.key] = obj.value)
  return html.evaluate();
}

然后使用include

<?!= include('DataHandler', {key:data, value: [1,2,3]}) ?>

我並沒有真正使用模板,但這對我有用:

HTML:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <div id="lnk"><?= data?></div>
    <script>
      var gdata=<?= data ?>
      window.onload=function(){
        google.script.run.writeData(gdata);
      }
      console.log("My Code");
    </script>
  </body>
</html>

GS:

function launchmydialog() {
  let ui=HtmlService.createTemplateFromFile('ah1');
  ui.data="Hello Work";
  SpreadsheetApp.getUi().showModelessDialog(ui.evaluate(),'Title');
}

function writeData(data) {
  SpreadsheetApp.getUi().alert(data);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM