Google apps script 将数据源动态绑定到app maker弹出窗口

Google apps script 将数据源动态绑定到app maker弹出窗口,google-apps-script,google-app-maker,Google Apps Script,Google App Maker,我需要有一个通用的“删除确认”弹出窗口,并在弹出窗口出现之前使用激发的事件将数据源动态绑定到弹出窗口 单击“位置”页面上的删除图标时将出现弹出窗口(下面的屏幕截图)。我需要同时设置弹出窗口的数据源。(当用户单击此删除图标时)并且当用户单击弹出窗口上的“删除”按钮时,必须删除记录 这是我目前为上面删除图标的onclick事件编写的代码 app.popups.ItemDeleteConfirmationDialog.descendants.Content.datasource = widget.d

我需要有一个通用的“删除确认”弹出窗口,并在弹出窗口出现之前使用激发的事件将数据源动态绑定到弹出窗口

单击“位置”页面上的删除图标时将出现弹出窗口(下面的屏幕截图)。我需要同时设置弹出窗口的数据源。(当用户单击此删除图标时)并且当用户单击弹出窗口上的“删除”按钮时,必须删除记录

这是我目前为上面删除图标的onclick事件编写的代码

app.popups.ItemDeleteConfirmationDialog.descendants.Content.datasource = widget.datasource;
app.popups.ItemDeleteConfirmationDialog.descendants.ConfirmButton.datasource = widget.datasource;
app.popups.ItemDeleteConfirmationDialog.visible=true;
这就是弹出窗口的onClick按钮

widget.datasource.deleteItem();
请帮我解决这个问题。
谢谢。

以下是谷歌应用程序制造商团队的一位成员提出的建议:

在确认弹出窗口中,设置Dynamic类型的自定义属性。在本例中,调用属性CallbackFn

对于弹出窗口中ConfirmButton的onClick事件,请设置以下客户端脚本:

if (typeof widget.root.properties.CallbackFn === 'function') {
  widget.root.properties.CallbackFn();
}
widget.root.visible = false;
deleteItem(widget.datasource);
function deleteItem(datasource) {
  var popup = app.popups.ItemDeleteConfirmationDialog;

  popup.properties.CallbackFn = function() {
    datasource.deleteItem();
  };

  popup.visible = true;
}
对于数据源表中的“删除”按钮,请设置以下客户端脚本:

if (typeof widget.root.properties.CallbackFn === 'function') {
  widget.root.properties.CallbackFn();
}
widget.root.visible = false;
deleteItem(widget.datasource);
function deleteItem(datasource) {
  var popup = app.popups.ItemDeleteConfirmationDialog;

  popup.properties.CallbackFn = function() {
    datasource.deleteItem();
  };

  popup.visible = true;
}
在“脚本”部分中,添加客户端脚本或在现有客户端脚本下插入以下函数:

if (typeof widget.root.properties.CallbackFn === 'function') {
  widget.root.properties.CallbackFn();
}
widget.root.visible = false;
deleteItem(widget.datasource);
function deleteItem(datasource) {
  var popup = app.popups.ItemDeleteConfirmationDialog;

  popup.properties.CallbackFn = function() {
    datasource.deleteItem();
  };

  popup.visible = true;
}
由于表中的delete按钮位于表行内,因此可能需要更改传递给deleteItem()函数的函数变量,如下所示:

deleteItem(widget.parent.parent.datasource);

如果这不起作用,请告诉我。在我自己的应用程序中,我用更复杂的逻辑设置了这个函数,在某些情况下,我将多个变量传递给我的deleteItem()函数,它工作得很好。

Hi@Markus,感谢您提供了宝贵的答案。这对我来说就像预期的那样。