代码之家  ›  专栏  ›  技术社区  ›  user1592380

工作表:未捕获类型错误:google.script.run.WithSuccessHandler(…)不是函数

  •  0
  • user1592380  · 技术社区  · 7 年前

    enter image description here

    我在应用程序脚本模板正文中有以下内容:

        <script>
    
        function getConversations() {
           var jsonRow = <?= row ?>; //PASSED IN JSON
           console.log('row');
           var myObj = JSON.parse(jsonRow);
               console.log(myObj['CONVERSATION'].split('|'));
    
            return myObj['CONVERSATION'].split('|'); // array of texts
    
        };
    
                $(function() {
            google.script.run.withSuccessHandler(buildOptionList)
                .getConversations();
    
        });
    
               function buildOptionList(options) {
            var list = $('#optionList');
            //     alert('hi');
            //     https://tutorialzine.com/2010/11/jquery-data-method
            list.empty();
            for (var i = 0; i < options.length; i++) {
                console.log(options[i]);
                list.append('<option value="' + options[i].toLowerCase() + '">' + options[i] + '</option>');
            }
        };
    
    
    
        </script>
    

    GETStalk函数按预期工作,并且我可以在控制台中看到正确的输出。当我添加其余的代码时,标题中会出现错误。我做错什么了?

    0 回复  |  直到 7 年前
        1
  •  1
  •   Tanaike    7 年前
    • 要从中检索值 getConversations() buildOptionList() .
    • row 属于 var jsonRow = <?= row ?> 是在煤气侧产生的。

    如果我的理解是正确的,那么这次修改怎么样?

    HTML侧:

    • 在这次修改中, 获取对话() 用于煤气侧和回流 myObj['CONVERSATION'].split('|') . 所以请移除 获取对话() ,因为此修改未使用。
    • 使用 google.script.run.withSuccessHandler(buildOptionList).getConversations() , 获取对话() 在煤气侧运行并将值发送到 构建选项列表() .

    气侧:

    请将下面的脚本放入gas side的脚本中。

    function getConversations() {
      var myObj = {CONVERSATION: "sample1|sample2|sample3"}; // This is a sample value. Because I'm not sure about row you use.
      return myObj['CONVERSATION'].split('|');
    }
    
    • 在这里,我不确定 . 所以从你的脚本中,我想象了样本值并使用了它。请替换 myObj 你的。
    • 创造价值 获取对话() 发送到 buildOptionList(options) . 并且可以检索值为 options .
        2
  •  0
  •   user1592380    7 年前

    我意识到我犯了一个错误,根本不需要google.script.run.withSuccessHandler,因为我只想在HTML端处理对象。最后我用了:

        <script>
    
    
        function getConversations() {
           var jsonRow = <?= row ?>; //PASSED IN JSON
           console.log('row');
           var myObj = JSON.parse(jsonRow);
               console.log(myObj['CONVERSATION'].split('|'));
    
            return myObj['CONVERSATION'].split('|'); // array of texts
    
        };
    
               function buildOptionList(options) {
            var list = $('#optionList');
    
            list.empty();
            for (var i = 0; i < options.length; i++) {
                console.log(options[i]);
                list.append('<option value="' + options[i].toLowerCase() + '">' + options[i] + '</option>');
            }
        };
    
        (function (){buildOptionList(getConversations())}());