我正在Google App Maker中创建自定义确认对话框,并希望确认按钮调用传入函数。我没有在按钮小部件中看到“onclick”事件。有关如何做到这一点的任何建议吗?
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);
}
由于
答案 0 :(得分:3)
如果这更容易一点,那就太好了,但最好的办法是使用自定义属性(https://developers.google.com/appmaker/ui/viewfragments)。
您可以设置“动态”类型的自定义属性并将其调用为任何内容,例如,使用“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属性,确认按钮的文本属性为boudn,为@ properties.confirmText。
然后,当您调用对话框时,您只需设置这些自定义属性即可。使用所有内容的属性快速修改示例代码:
function confirmationDialog(msg, confirmFunction)
{
var properties = app.pageFragments.ConfirmationDialog.properties;
properties.text = msg;
properties.confirmCallback = confirmFunction;
app.showDialog(app.pageFragments.ConfirmationDialog);
}
答案 1 :(得分:0)
对于我的确认对话框,我只是在显示对话框之前设置了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);
}