我将用一个例子来表明我的问题:
我有一个按钮。单击时,它会根据加载项中的TextInputFields
创建邮件草稿。
我有一个验证功能,可以说明字段填写是否正确。
如果我想以某种方式通知用户有关错误的字段,我必须创建一个通知或重建具有错误信息的卡。这些操作可以在正常的Action
中返回,但不能与composeAction
一起返回(因为composeAction
必须使用构建的草稿返回),因此我必须注册composeAction
和对按钮的简单操作。
当我点击这种按钮时,只有一个动作执行而另一个动作无效。
有关我如何尝试实施的一些代码:
section.addWidget(CardService.newTextButton()
.setText('Validate and Create')
.setComposeAction(CardService.newAction().setFunction('doIt'), CardService.ComposedEmailType.STANDALONE_DRAFT)
.setOnClickAction(CardService.newAction().setFunction('notify')));
ActionFunctions:
function doIt(event){
validate the event['formInput'] object;
if(valid the formInput)
create andr return the draft;
else
return null;
}
function notify(event){
validate the event['formInput'] object;
if(valid the formInput)
return null;
else
return notify or rebuilded card with error info;
}
主要是简单的动作运行,而compose什么都不做。如果我在回调函数中放置Logger.log()
函数,则只有一个出现在api日志中。
有人在验证之前尝试过并在同一次点击中创建草稿吗?
答案 0 :(得分:0)
如何?
var action=CardService.newAction().setFunctionName('myFunction');
var validateCreateButton=CardService.newTextButton()
.setText('Validate & Create')
.setOnClickAction(action);
section.addWidget(validateCreateButton);
function myFunction(e) {
doit(e);
notify(e);
}