我正在使用各种包装函数向UiApp添加小部件,如下面的示例
function newButton(text, handler, callBack) {
var app = UiApp.getActiveApplication();
return app.createButton(text).addClickHandler(app.createServerClickHandler(handler).addCallbackElement(callBack));
}
在同一个脚本(如下面的
)中使用时效果很好panel.add(newButton(“提交”,“myHandler”,面板));
但是当在库中包含newButton函数(例如myLib)并且它被称为myLib.newButton时,我会收到一个错误: “遇到错误:未知的宏myLib.myHandler”
panel.add(myLib.newButton(“提交”,“myHandler”,面板));
任何避免此问题的方法,同时将myHandler保留在当前脚本中(而不是在myLib中)? 谢谢,福斯托
答案 0 :(得分:1)
是的,它可以。 在当前脚本中(其中您导入了对库的引用) 创建
function myLib.myHandler(){
}
当你的处理程序(字符串)继续传递名称'myHandler'时。上面的函数将由库脚本中创建的按钮调用。
似乎应用程序脚本正在使用此命名空间结构来避免名称冲突。
你应该记住,谷歌可能故意不记录这个原因。也许这种现有结构将来可能会改变。或者也许我只是偏执狂; - )