如何在 Google App Maker 中将回调附加到自定义确认对话框?
How to attach a callback to a custom confirmation dialog in Google App Maker?
我正在 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);
}
谢谢
如果这能更简单一点就好了,但最好的办法是使用自定义属性 (https://developers.google.com/appmaker/ui/viewfragments)。
您可以设置类型为 "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) 绑定到小部件 属性。例如,您可能有一个确认文本 属性,确认按钮文本 属性 绑定到 @properties.confirmText.
然后当您调用对话框时,您可以只设置那些自定义属性。使用所有属性快速修改示例代码:
function confirmationDialog(msg, confirmFunction)
{
var properties = app.pageFragments.ConfirmationDialog.properties;
properties.text = msg;
properties.confirmCallback = confirmFunction;
app.showDialog(app.pageFragments.ConfirmationDialog);
}
对于我的确认对话框,我只是在显示对话框之前设置了“确定”按钮的 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);
}
我正在 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);
}
谢谢
如果这能更简单一点就好了,但最好的办法是使用自定义属性 (https://developers.google.com/appmaker/ui/viewfragments)。
您可以设置类型为 "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) 绑定到小部件 属性。例如,您可能有一个确认文本 属性,确认按钮文本 属性 绑定到 @properties.confirmText.
然后当您调用对话框时,您可以只设置那些自定义属性。使用所有属性快速修改示例代码:
function confirmationDialog(msg, confirmFunction)
{
var properties = app.pageFragments.ConfirmationDialog.properties;
properties.text = msg;
properties.confirmCallback = confirmFunction;
app.showDialog(app.pageFragments.ConfirmationDialog);
}
对于我的确认对话框,我只是在显示对话框之前设置了“确定”按钮的 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);
}