Html 如何将对象从后端传递到前端

Html 如何将对象从后端传递到前端,html,google-apps-script,Html,Google Apps Script,我尝试创建一个Web应用程序。因此,我必须将一个对象从后端传递到HTML脚本。我尝试了很多可能性,但都不起作用 后端 function searchMain (allSeaVal) { var headCon = DbSheet.getRange(1, 1, 1, DbSheet.getLastColumn()).getValues(); var bodyCon = DbSheet.getRange(valRow, typesCol, 1, DbSheet.getLastColum

我尝试创建一个Web应用程序。因此,我必须将一个对象从后端传递到HTML脚本。我尝试了很多可能性,但都不起作用

后端

function searchMain (allSeaVal) {

   var headCon = DbSheet.getRange(1, 1, 1, DbSheet.getLastColumn()).getValues();
   var bodyCon = DbSheet.getRange(valRow, typesCol, 1, DbSheet.getLastColumn()).getValues();

   var Con = {
       headline: headCon, 
       values:   bodyCon
      };
             
     var tmp = HtmlService.createTemplateFromFile('page_js');
     tmp.Con = Con.map(function(r){ return r; });
       return tmp.evaluate();
 
}
function searchMain (allSeaVal) {

 var typesCol = searchTypesCol(allSeaVal.seaType);
 var valRow = searchRow(allSeaVal.seaVal, typesCol);

   var headCon = DbSheet.getRange(1, 1, 1, DbSheet.getLastColumn()).getValues();
   var bodyCon = DbSheet.getRange(valRow, typesCol, 1, DbSheet.getLastColumn()).getValues();

   var Con = {
       headline: headCon, 
       values:   bodyCon
      };

     return Con;

}
HTML

<script>
    function searchValues() {
      var allSeaVal = {};

      allSeaVal.seaType = document.getElementById('valSearchTyp').value;
      allSeaVal.seaVal = document.getElementById('HSearchVal').value;
       
      
      google.script.run.searchMain(allSeaVal); 

      Logger.log(Con);
   }
<script/>
function searchValues() {
      var allSeaVal = {};

      allSeaVal.seaType = document.getElementById('valSearchTyp').value;
      allSeaVal.seaVal = document.getElementById('HSearchVal').value;


      google.script.run
            .withSuccessHandler(
                 function(Con) {
                   console.log(Con + 'success');

                 })
            .withFailureHandler(
              function(Con) {
                  console.log(Con + 'failure');
                })
            .searchMain(allSeaVal);

   }

函数searchValues(){
var allSeaVal={};
allSeaVal.seaType=document.getElementById('valSearchTyp')。值;
allSeaVal.seaVal=document.getElementById('HSearchVal').value;
google.script.run.searchMain(allSeaVal);
Logger.log(Con);
}
我想在网站上使用“Con”中的信息。脚本代码存储在文件“page_js”中。
我不知道为什么,但我无法将信息传递到前端。

在html界面中,您必须使用google.script.run中的成功和失败处理程序

代码看起来像

  google.script.run
        .withSuccessHandler(
          function(msg) {
            // Respond to success conditions here.
            console.log('Execution successful.');
          })
        .withFailureHandler(
          function(msg) {
            // Respond to failure conditions here.
            console.log('Execution failed: ' + msg, 'error');
          })
        .searchMain(allSeaVal);
请随时查看文档:


在html界面中,您必须在google.script.run中使用成功和失败处理程序

代码看起来像

  google.script.run
        .withSuccessHandler(
          function(msg) {
            // Respond to success conditions here.
            console.log('Execution successful.');
          })
        .withFailureHandler(
          function(msg) {
            // Respond to failure conditions here.
            console.log('Execution failed: ' + msg, 'error');
          })
        .searchMain(allSeaVal);
请随时查看文档:


在你的帮助下,我解决了我的问题。非常感谢你。我为此奋斗了很多天。 我的解决方案是下面的代码

后端

function searchMain (allSeaVal) {

   var headCon = DbSheet.getRange(1, 1, 1, DbSheet.getLastColumn()).getValues();
   var bodyCon = DbSheet.getRange(valRow, typesCol, 1, DbSheet.getLastColumn()).getValues();

   var Con = {
       headline: headCon, 
       values:   bodyCon
      };
             
     var tmp = HtmlService.createTemplateFromFile('page_js');
     tmp.Con = Con.map(function(r){ return r; });
       return tmp.evaluate();
 
}
function searchMain (allSeaVal) {

 var typesCol = searchTypesCol(allSeaVal.seaType);
 var valRow = searchRow(allSeaVal.seaVal, typesCol);

   var headCon = DbSheet.getRange(1, 1, 1, DbSheet.getLastColumn()).getValues();
   var bodyCon = DbSheet.getRange(valRow, typesCol, 1, DbSheet.getLastColumn()).getValues();

   var Con = {
       headline: headCon, 
       values:   bodyCon
      };

     return Con;

}
HTML

<script>
    function searchValues() {
      var allSeaVal = {};

      allSeaVal.seaType = document.getElementById('valSearchTyp').value;
      allSeaVal.seaVal = document.getElementById('HSearchVal').value;
       
      
      google.script.run.searchMain(allSeaVal); 

      Logger.log(Con);
   }
<script/>
function searchValues() {
      var allSeaVal = {};

      allSeaVal.seaType = document.getElementById('valSearchTyp').value;
      allSeaVal.seaVal = document.getElementById('HSearchVal').value;


      google.script.run
            .withSuccessHandler(
                 function(Con) {
                   console.log(Con + 'success');

                 })
            .withFailureHandler(
              function(Con) {
                  console.log(Con + 'failure');
                })
            .searchMain(allSeaVal);

   }

在你的帮助下,我解决了我的问题。非常感谢你。我为此奋斗了很多天。 我的解决方案是下面的代码

后端

function searchMain (allSeaVal) {

   var headCon = DbSheet.getRange(1, 1, 1, DbSheet.getLastColumn()).getValues();
   var bodyCon = DbSheet.getRange(valRow, typesCol, 1, DbSheet.getLastColumn()).getValues();

   var Con = {
       headline: headCon, 
       values:   bodyCon
      };
             
     var tmp = HtmlService.createTemplateFromFile('page_js');
     tmp.Con = Con.map(function(r){ return r; });
       return tmp.evaluate();
 
}
function searchMain (allSeaVal) {

 var typesCol = searchTypesCol(allSeaVal.seaType);
 var valRow = searchRow(allSeaVal.seaVal, typesCol);

   var headCon = DbSheet.getRange(1, 1, 1, DbSheet.getLastColumn()).getValues();
   var bodyCon = DbSheet.getRange(valRow, typesCol, 1, DbSheet.getLastColumn()).getValues();

   var Con = {
       headline: headCon, 
       values:   bodyCon
      };

     return Con;

}
HTML

<script>
    function searchValues() {
      var allSeaVal = {};

      allSeaVal.seaType = document.getElementById('valSearchTyp').value;
      allSeaVal.seaVal = document.getElementById('HSearchVal').value;
       
      
      google.script.run.searchMain(allSeaVal); 

      Logger.log(Con);
   }
<script/>
function searchValues() {
      var allSeaVal = {};

      allSeaVal.seaType = document.getElementById('valSearchTyp').value;
      allSeaVal.seaVal = document.getElementById('HSearchVal').value;


      google.script.run
            .withSuccessHandler(
                 function(Con) {
                   console.log(Con + 'success');

                 })
            .withFailureHandler(
              function(Con) {
                  console.log(Con + 'failure');
                })
            .searchMain(allSeaVal);

   }

谢谢。这帮了大忙。看来searchMain()函数不起作用了,但我想用FailureHandler()更容易找到我的错误。我没有检查这个函数是否正确,只是把代码放在前端和后端通信上。谢谢。这帮了大忙。searchMain()似乎函数不起作用,但我认为更容易发现FailureHandler()的错误。我没有检查此函数是否为true,只是将代码用于前端和后端通信。