将多个参数传递给addCallBackElement Google Script

时间:2017-12-30 03:14:27

标签: javascript google-apps-script google-sheets

有没有办法在Google Scripts中为addCallBackElement()函数添加多个参数?我想发送有关用户键入给定文本框的内容以及整数的信息。我可以发送这两个吗?如果没有,有没有什么方法可以看到用户在没有实际处理器功能的情况下输入文本框的内容?谢谢!

例如:

var count = 0
var handler = app.createServerHandler('myClickHandler').addCallbackElement(textBox, count);

2 个答案:

答案 0 :(得分:1)

对于未来的读者,您可以在 array 方法中将多个参数作为 withUserObject 传递。

示例

<input type="button" value="Not Clicked"
      onclick="google.script.run
          .withSuccessHandler(updateButton)
          .withUserObject([this, 'Second Arg', 'Third Arg', ...])
          .getEmail()" />

然后您可以根据array的索引进行访问。

updateButton(email, args) {
 console.log(args); //[ButtonElement, 'Second Arg', 'Third Arg', ...];
 //Access it using
 const btn = args[0];
 const secArg = args[1];

 //or using es6's destructuring
 const [btn, secArg] = args;
}

答案 1 :(得分:0)

如果您使用的是独立脚本或附加组件,则可以使用此类内容。其中使用withUserObject()。代码来自from this doc.

<input type="button" value="Not Clicked"
      onclick="google.script.run
          .withSuccessHandler(updateButton)
          .withUserObject(this)
          .getEmail()" />

然后将用户的信息作为成功处理程序中的第二个参数包含在内。

<script>
  // updateButton(fromServer, FromUser)
  function updateButton(email, button) {
    button.value = 'Clicked by ' + email;
  }
</script>