Google app maker 如何将回调附加到Google App Maker中的自定义确认对话框?

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

我正在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);
}

谢谢

如果这更简单一点,那就太好了,但最好的办法是使用自定义属性()

您可以设置一个类型为“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);
}

嗯,根据你的代码,我想说…..等等,你没有提供任何代码。当你没有提供任何代码时,我们应该如何修复你的代码;'没有给我们任何代码?我没有添加代码,因为我在小部件上找不到任何要尝试的事件。但是我添加了很好的工作方式。感谢使用属性的想法,我们能够让它工作。代码现在很好,很干净!