使用谷歌脚本将2D数组传递给HTML

时间:2015-03-27 17:20:50

标签: javascript google-apps-script

我正在尝试传递在Javascript文件中创建的2D数组:

Code.gs

function getPermits()
{
  Logger.log('Starting permits');
  var permits =  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getDataRange().getValues();
  Logger.log('Got permits: ' + permits [0][0]);

  return permits;
}

我在这个html文件中使用处理程序调用该函数:

<script type="text/javascript">
   function onSuccess(numUnread) {
    alert('You have ' + numUnread[0][0]
       + ' unread messages in your Gmail inbox.');
      document.getElementById("id2").innerHTML = numUnread[0][0];


}

   function onFail(numUnread){
   alert('Script failed!');
   }

 google.script.run.withSuccessHandler(onSuccess).getPermits();
 google.script.run.withFailureHandler(onFail).getPermits();
</script>

Logger.log('Got permits: ' + permits[0][0]); 无论如何,呼叫都是完美的。然而,虽然我可以以这种方式传递一维数组并且工作正常,但传递2D数组会导致失败。为什么会这样?我是否使用了不正确的语法?

提前致谢

1 个答案:

答案 0 :(得分:1)

将其字符串化为JSON对象,然后您只能传递一个字符串,它可以正常工作:

return JSON.stringify(permits);

在HTML上:

function onSuccess(numUnread) {
  numUnread = JSON.parse(numUnread);