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

使用call函数和无返回值进行标签文本绑定

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

    我有一个问题,就是通过调用一个函数(客户端脚本)来修改标签文本,该函数调用一个返回值的函数(服务器端)。

    控制台。信息(返回值)显示正确的值,但标签文本为空。 即使是这样的退货==>返回“Test”,它不起作用。

    以下是我为调试目的创建的函数:

    客户端脚本:

    function onSuccess(value) {
      console.info("debug : " + value); // <== this works !
    }
    
    function TestFunction(value) {
      // Call server side functions
      google.script.run.withSuccessHandler(onSuccess).test("any value");
    
    }
    

    服务器脚本:

    function test(arg) {
        return "This a return value";
    }
    

    标签文本中的绑定:

    TestFunction("test")
    

    你有什么想法吗?我做错了什么?

    编辑:如Chris所问,以下是导出应用程序zip的链接: https://drive.google.com/file/d/1LEcEYtv0guC_ELicE9vFrY8AygJeVqWP/view?usp=sharing

    1 回复  |  直到 7 年前
        1
  •  2
  •   Morfinismo    7 年前

    问题是您试图直接从服务器脚本获取值。正如您所看到的,控制台日志正在工作,因为您正在 onSuccess成功 作用

    您需要做的是将小部件传递给 TestFunction测试函数 以及 onSuccess成功 函数应位于测试函数内部。考虑以下示例:

    客户端脚本:

    function TestFunction(widget, value) {
    
      function onSuccess(value) {
        console.info("debug : " + value);
        widget.text = value;
      }
    
      // Call server side functions
      google.script.run.withSuccessHandler(onSuccess).test(value);
    
    }
    

    服务器脚本:

    function test(arg) {
        return arg;
    }
    

    标签文本中的绑定:

    TestFunction(@widget, "This is what I want")
    

    我希望这有帮助!