使用命名空间函数调用 google.script.run

Calling google.script.run with Namespace Functions

我一直在将一个旧的 javascript 项目迁移到 GAS,但在尝试从客户端 Web 应用程序 运行 命名空间函数时遇到障碍。快速代码示例:

var foo = function() {
  function doBar() {
    //do stuff
  }

  function doBang() {
    //do stuff
  }

  return {
  bar:doBar,
  bang:doBang
  }
}();

虽然这很容易通过 foo.bar() 在服务器端调用,但我在尝试从我的 Web 应用程序调用这些功能时遇到了困难。我希望做这样的事情:

<script>
  google.script.run.withSuccessHandler(callback).foo.bar();
  function callback() {
    //do stuff
  }
</script>

但是,唉,这似乎行不通。是否有我遗漏的东西,或者另一种方法可以在没有某种形式的处理函数的情况下使它工作,不包含在命名空间中,它传递到我的命名空间?

由于这是一个项目迁移,我有一个结构良好但庞大的命名空间集;这将需要一个非常长且健壮的处理器函数,所以我想尽可能避免这样做。

您需要该处理函数。如果您添加点,Apps 脚本无法理解您正在调用 server-side 函数,因此您会收到此错误:

TypeError: Cannot read properties of undefined (reading 'bar')

功能请求:

如果您希望实现此功能,我建议您使用 this Issue Tracker template 请求此功能。