我在Apps脚本中遇到了很多关于回调和范围的问题。我有以下功能,可以创建一个Gmail加载项部分,其中包含当前打开的电子邮件中每个附加文件的复选框:
plot(c(1,2,3),xlim=c(1,8),ylim=c(1,10),xlab="x index", ylab="y values")
points(c(6,7,8),c(5,6,7))
所有内容都按预期显示,但我希望用户也能够选择要取消选中的文件以供日后处理。 在我的checkboxAltered函数中,我想处理用户选择输入操作,这是唯一的方法(据我从文档中学到的。请告诉我,我是不是错了!)。它目前是一个空函数,仅用于检查我的理解程度:
function createAttachmentsSection( attachments ){
var widget = CardService.newSelectionInput()
.setFieldName( 'selectedFiles' )
.setType( CardService.SelectionInputType.CHECK_BOX )
.setOnChangeAction(
CardService.newAction()
.setFunctionName( 'checkboxAltered' )
);
for ( var i = 0 ; i < attachments.length; i++ )
widget.addItem( attachments[i].getName(), '' + i , true )
return CardService.newCardSection().addWidget( widget );
}
事件对象 function checkboxAltered( e ){
Logger.log( e );
Logger.log( selections.length );
}
始终为e
。 undefined
,一个(先前已初始化并已检查)全局bool数组,其中包含每个附件的项目,在checkboxAltered中始终只是selections
。
我做错了什么? 如何使用setParameters(Object)告诉回调函数内部用户单击了哪个复选框? 是否无法从回调函数访问全局变量?