GoogleApps脚本,将对象从服务器发送到HTML模板和javascript

GoogleApps脚本,将对象从服务器发送到HTML模板和javascript,javascript,google-apps-script,Javascript,Google Apps Script,我正在从.gs代码向我的page.html发送一个数组 如果我直接在HTML代码中解析我的对象,没有问题,但是如果我尝试使用JSON.parse()将其放入javascript变量中,就没有机会了 我做错了什么 .GS代码doget() var htmlTemplate=HtmlService.createTemplateFromFile('Index'); htmlTemplate.colors=颜色; htmlTemplate.jobs=从工作表中提取数据(approvedReal); va

我正在从.gs代码向我的page.html发送一个数组
如果我直接在HTML代码中解析我的对象,没有问题,但是如果我尝试使用JSON.parse()将其放入javascript变量中,就没有机会了

我做错了什么

.GS代码doget()

var htmlTemplate=HtmlService.createTemplateFromFile('Index');
htmlTemplate.colors=颜色;
htmlTemplate.jobs=从工作表中提取数据(approvedReal);
var newposit=false;
var-jobs0= 共有3种类型:

  • 标准:
    :无html输出
  • 打印:
    :输出数据,但转义数据以避免xss攻击
  • 强制打印:
    :按原样输出数据

因为传递的数据是json,所以应该使用强制打印scriplets。

根据最佳实践,动态加载html页面和拉入值以呈现它们。请参见下面的示例:

<p>List of things:</p>
<ul id="things">
    <li>Loading...</li>
</ul>

<script
src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
// The code in this function runs when the page is loaded.
$(function() {
  google.script.run.withSuccessHandler(showThings)
      .getLotsOfThings();
});

function showThings(things) {
  var list = $('#things');
  list.empty();
  for (var i = 0; i < things.length; i++) {
    list.append('<li>' + things[i] + '</li>');
  }
}
</script>
在前端,调用后端函数并处理响应:

function handleSuccess( dataFromSheet ){
  var data = dataFromSheet;
  // work with data here
}

// here we call the back-end function and tell it to run the function above
google.script.run
  .withSuccessHandler(handleSuccess)
  .extractDataFromSheet()

似乎使用JQUERY,我使用
var jobs0=$.parseJSON()获取我的值-->的方法我得到了我的结果我在HTML解析模板中得到了ZautoescZ输出,不知道“强制打印”设置无法逃避我发送到模板的内容:)谢谢。
 <script>
     var approved = <?= approvati ?>;
     var newPostit = false;
     var jobs0 = <?= JSON.stringify(jobs) ?>;  <--see image-1
     var jobs1 = <?= JSON.parse(jobs ) ?>; <--see image-2
........
<p>List of things:</p>
<ul id="things">
    <li>Loading...</li>
</ul>

<script
src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
// The code in this function runs when the page is loaded.
$(function() {
  google.script.run.withSuccessHandler(showThings)
      .getLotsOfThings();
});

function showThings(things) {
  var list = $('#things');
  list.empty();
  for (var i = 0; i < things.length; i++) {
    list.append('<li>' + things[i] + '</li>');
  }
}
</script>
function extractDataFromSheet( dataFromSheet ){
  // this you already have
}
function handleSuccess( dataFromSheet ){
  var data = dataFromSheet;
  // work with data here
}

// here we call the back-end function and tell it to run the function above
google.script.run
  .withSuccessHandler(handleSuccess)
  .extractDataFromSheet()