google-apps-script - 有多少个回调元素?

标签 google-apps-script

考虑下面这段简单的代码

function doGet(){
  var app = UiApp.createApplication();
  var panel = app.createVerticalPanel();
  var handler = app.createServerHandler('click').addCallbackElement(panel);
  var btn = app.createButton('Click', handler);

  panel.add(button);
  app.add(panel);
  return app;
}

只有一个面板,回调元素是单独的面板。但是,当您有许多用于不同目的的面板时,更好的方法是什么 - 添加多个回调元素或将所有各种面板添加到单个“主”面板中并将主面板添加为回调元素。 这些方法的优缺点是什么?

下面是一些代码示例

选项 1:

function doGet(){
  ...
  var panel1 = app.createVerticalPanel();
  var panel2 = app.createVerticalPanel();

  var handler = app.createServerHandler('click')
     .addCallbackElement(panel1) 
     .addCallbackElement(panel2) ; // Notice two callback elements added here 
  var btn = app.createButton('Click', handler);

  ...
  return app;
}

选项 2:

function doGet(){
  ...
  var masterPanel = app.createVerticalPanel();
  var panel1 = app.createVerticalPanel();
  var panel2 = app.createVerticalPanel();

  var handler = app.createServerHandler('click')
     .addCallbackElement(masterPanel) ;

  var btn = app.createButton('Click', handler);

  masterPanel.add(panel1).add(panel2); // Master panel has both panels added to it      
  ...
  return app;
}

一种选择比另一种更好吗?

最佳答案

选项 2 在脚本中更容易编写 ;-) 并确保您不会忘记(最终)一长串回调元素中的某些内容。

但两者的工作原理是一样的。

关于google-apps-script - 有多少个回调元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11356391/

相关文章:

javascript - 创建用于在 Google Forms 中批准工作流程的脚本

javascript - 填充多行范围(多列) - google-apps-script

google-apps-script - 通过Google Apps脚本从其他电子邮件地址发送电子邮件

javascript - 根据条件检索Google表格中的选择性行

javascript - 格式化日出现意外字符

google-apps-script - 从 Google 协作平台发送电子邮件通知

javascript - 如何以编程方式获取日历的 ID?

error-handling - withFailureHandler的自定义失败处理程序-Google Apps脚本

javascript - 将我的代码从变量更改为数组

google-apps-script - 我可以使用一个Google脚本来处理多个电子表格吗?