动态将数据源绑定到应用制造商弹出窗口

Aji*_*ith 2 google-apps-script google-app-maker

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

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

在此处输入图片说明

这是我目前用于上面删除图标的onclick事件的代码

app.popups.ItemDeleteConfirmationDialog.descendants.Content.datasource = widget.datasource;
app.popups.ItemDeleteConfirmationDialog.descendants.ConfirmButton.datasource = widget.datasource;
app.popups.ItemDeleteConfirmationDialog.visible=true;
Run Code Online (Sandbox Code Playgroud)

这就是我对弹出窗口的onClick按钮的要求

widget.datasource.deleteItem();
Run Code Online (Sandbox Code Playgroud)

请帮助我解决此问题。谢谢。

Mar*_*ssa 5

Google的App Maker小组的一位成员提出了以下建议:

在“确认弹出窗口”中,设置动态类型的自定义属性。在此示例中,调用属性CallbackFn。

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

if (typeof widget.root.properties.CallbackFn === 'function') {
  widget.root.properties.CallbackFn();
}
widget.root.visible = false;
Run Code Online (Sandbox Code Playgroud)

为数据源表中的删除按钮设置以下客户端脚本:

deleteItem(widget.datasource);
Run Code Online (Sandbox Code Playgroud)

在脚本部分中,添加客户端脚本或在现有客户端脚本下插入以下功能:

function deleteItem(datasource) {
  var popup = app.popups.ItemDeleteConfirmationDialog;

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

  popup.visible = true;
}
Run Code Online (Sandbox Code Playgroud)

由于表中的删除按钮在表行内,因此您可能需要更改传递给deleteItem()函数的函数变量,如下所示:

deleteItem(widget.parent.parent.datasource);
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,请通知我。我已经在自己的应用程序中使用了更为复杂的逻辑进行了此设置,并且在某些情况下将多个变量传递给我的deleteItem()函数,并且效果很好。