0

我正在使用某种包装函数向 UiApp 添加小部件,如下面的示例

function newButton(text, handler, callBack) {
  var app = UiApp.getActiveApplication();
  return app.createButton(text).addClickHandler(app.createServerClickHandler(handler).addCallbackElement(callBack));
}
  • 在同一个脚本中使用时它工作正常,如下所示

    panel.add(newButton("Submit", "myHandler", panel));

  • 但是当在库(例如 myLib)中包含 newButton 函数并且它被称为 myLib.newButton 时,我会收到一个错误:“遇到错误:未知宏 myLib.myHandler”

    panel.add(myLib.newButton("Submit", "myHandler", panel));

有什么方法可以避免这个问题,同时将 myHandler 保留在当前脚本中(而不是 myLib 中)?谢谢,福斯托

4

1 回答 1

1

是的,它可以。在您当前的脚本中(您在其中导入了对库的引用)创建;

function myLib.myHandler(){
}

随着您的处理程序(字符串)不断传递名称“myHandler”。上述函数将由您的库脚本中创建的按钮调用。

似乎应用程序脚本正在使用此命名空间结构来避免名称冲突。

您应该记住,谷歌可能出于某种原因故意没有记录。也许这种当前的结构将来可能会改变。或者也许我只是偏执;-)

于 2012-09-09T16:00:22.230 回答