Google app maker 如何将回调附加到Google App Maker中的自定义确认对话框?
我正在Google App Maker中创建一个自定义确认对话框,希望确认按钮调用传入函数。我在按钮小部件中没有看到“onclick”事件。有什么建议吗Google app maker 如何将回调附加到Google App Maker中的自定义确认对话框?,google-app-maker,Google App Maker,我正在Google App Maker中创建一个自定义确认对话框,希望确认按钮调用传入函数。我在按钮小部件中没有看到“onclick”事件。有什么建议吗 function confirmationDialog(msg, confirmFunction) { var desc = app.pageFragments.ConfirmationDialog.descendants; var label = desc.Label; var confirmButton = desc.Confi
function confirmationDialog(msg, confirmFunction)
{
var desc = app.pageFragments.ConfirmationDialog.descendants;
var label = desc.Label;
var confirmButton = desc.Confirm;
label.text = msg;
confirmButton.onClick = confirmFunction; // does not work
app.showDialog(app.pageFragments.ConfirmationDialog);
}
谢谢如果这更简单一点,那就太好了,但最好的办法是使用自定义属性() 您可以设置一个类型为“Dynamic”的自定义属性,并将其称为任何名称,例如“onConfirmCallback”。然后可以在该自定义属性上设置函数: 要调用对话框的代码:
app.pageFragments.ConfirmationDialog.properties.onConfirmCallback = function(param) {
alert(param);
};
app.showDialog(app.pageFragments.ConfirmationDialog);
然后在onClick中单击关闭按钮:
app.pageFragments.ConfirmationDialog.properties.onConfirmCallback("hi");
app.closeDialog();
还请注意,与您的示例相比,还有一些设置标签的更好方法,也可以使用自定义属性
为要自定义的任何小部件属性创建自定义属性,然后将这些自定义属性(@properties.propertyName)绑定到小部件属性。例如,您可能有一个confirmText属性,使用confirmButtons文本属性boudn to@properties.confirmText
然后,当您调用对话框时,您可以只设置这些自定义属性。使用所有属性快速修改示例代码:
function confirmationDialog(msg, confirmFunction)
{
var properties = app.pageFragments.ConfirmationDialog.properties;
properties.text = msg;
properties.confirmCallback = confirmFunction;
app.showDialog(app.pageFragments.ConfirmationDialog);
}
对于我的确认对话框,我只需在显示对话框之前设置OK按钮的onclick(确定)(所有内容都在一个位置,这对于需要在六个月内维护对话框的虚拟人(我)来说比较容易:
var dialog=app.pages.ConfirmationDialog;
dialog.descendants.message.text='Are you sure...?'
dialog.descendants.btnOk.getElement().onclick=function(){
//do something here
app.closeDialog();
});
};
app.showDialog(dialog);
}
嗯,根据你的代码,我想说…..等等,你没有提供任何代码。当你没有提供任何代码时,我们应该如何修复你的代码;'没有给我们任何代码?我没有添加代码,因为我在小部件上找不到任何要尝试的事件。但是我添加了很好的工作方式。感谢使用属性的想法,我们能够让它工作。代码现在很好,很干净!