Javascript GAS HTMLService:使用模板中包含的文件中的createTemplateFromFile推送变量
我使用CreateTemplateFromFile并在模板中推送一个变量。我的模板文件包含另一个文件,但我无法将此变量推入嵌入的第二个文件中 下面是我尝试过的: index.html:Javascript GAS HTMLService:使用模板中包含的文件中的createTemplateFromFile推送变量,javascript,html,google-apps-script,Javascript,Html,Google Apps Script,我使用CreateTemplateFromFile并在模板中推送一个变量。我的模板文件包含另一个文件,但我无法将此变量推入嵌入的第二个文件中 下面是我尝试过的: index.html: ... index.html的脚本部分位于单独的文件中: 函数getData(){ $(“#loadingMessage”).html('Loading'); log('myContent:',); ... } Google应用程序脚本代码的doGet部分: var template = HtmlServ
...
index.html的脚本部分位于单独的文件中:
函数getData(){
$(“#loadingMessage”).html('Loading');
log('myContent:',);
...
}
Google应用程序脚本代码的doGet部分:
var template = HtmlService.createTemplateFromFile('index');
template.data = myContent;
return template.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
变量被正确地推入index.html中,但未到达脚本部分。
有什么想法吗?可能还需要将脚本文件作为模板包含?如何在应用程序脚本和Javascript之间传递变量。
GoogleApps脚本的特点是该方法可以从应用程序的JS部分调用。这些方法允许将参数传递给Apps脚本函数,并将GAS函数的返回值分配回JS函数
示例:
.gs文件
HTML/js文件
还要记住:
- 由于您编写的代码不是直接执行的,因此调试模板可能很困难;相反,服务器将模板转换为代码,然后执行生成的代码
function doGet() {
var template = HtmlService.createTemplateFromFile('index');
return template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function myContent(input) {
var myContent="foo"+input;
return myContent;
}
<html>
<head>
<base target="_top">
</head>
<body onload="getData()">
<script>
function getData() {
google.script.run.withSuccessHandler(proceedData).myContent("bar");
...
}
function proccedData(returnValue) {
var data = returnValue;
}
</script>
</body>
</html>
//global variable
var data=myContent;
function doGet() {
var temp=HtmlService.createTemplateFromFile("index.html");
return temp.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}