找不到Google Apps脚本库嵌套函数
Google Apps Script Library nested function not found
我有一个带有以下代码的库
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Generate Code')
.addItem('iOS', 'generateIOS')
.addItem('Android', 'generateAndroid')
.addToUi();
}
在同一个库中的另一个文件中,我有
function generateAndroid(){
generateFile('Android');
}
function generateIOS(){
generateFile('iOS');
}
现在,我正在脚本中使用库
function onOpen(){
Library.onOpen();
}
但我有
Script function not found: generateIOS For more information, see https://developers.google.com/apps-script/reference/base/menu#addItem(String,String)
如果我在使用库的脚本中创建一个generateIOS
函数,它就可以工作了。我该如何解决这个问题?
generateAndroid()
和generateIOS()
不存在于全局命名空间中,它们存在于库的命名空间中。因此,当您向UI中添加调用"generateOS"answers"generateAndroid"的项目时,脚本会尝试从与onOpen()
相同的上下文中运行它们,但找不到它们。请记住,addItem()
使用一对String作为参数,因此它是一个非常愚蠢的函数,并且不知道您指的是"库"函数而不是全局函数。
我看到两种可能的解决方案:
1) 添加只需将函数调用传递给库的全局函数。
// inside the global context
function generateAndroid(){
Library.generateAndroid();
}
function generateIOS(){
Library.generateIOS();
}
2) 尝试将Library名称空间添加到addItem()
字符串中(注意:我不知道这是否有效,但值得一试
.addItem('iOS', 'Library.generateIOS')
.addItem('Android', 'Library.generateAndroid')
相关文章:
- 用嵌套函数和默认函数定义函数
- d3中堆栈函数和嵌套函数之间的差异
- JavaScript 中的嵌套函数和 “this” 关键字
- Javascript中带有返回值的嵌套函数
- 访问嵌套函数结构中的JavaScript父函数变量
- 从嵌套函数访问函数属性
- 如何在javascript中使用嵌套函数作为生成器(使用“inner”yields)
- Javascript嵌套函数属性继承
- 我对“;返回true"嵌套函数内部;t工作
- JS中的嵌套函数
- 如何在嵌套函数中获取$(this)
- Jasmine中返回Deferred的模拟嵌套函数
- 如何在嵌套函数jquery上保持变量的值不变
- JavaScript中的深度嵌套函数
- Jquery从嵌套函数返回
- 使用'这'在类中的嵌套函数中
- 如何从上面的嵌套函数返回
- 从JavaScript中的嵌套函数返回值
- Javascript OOP-从函数返回一个值;s在对象内部's方法(嵌套函数)
- Javascript对象/名称空间-如何访问从嵌套函数添加的属性(包括示例)