You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google App Maker中将记录从一个模型迁移至另一个模型

实现Google App Maker中记录迁移至归档模型的功能

当然可以实现这个需求!我帮你拆解下具体的实现步骤和代码示例,你可以直接照着调整适配你的应用:

1. 给removed布尔字段绑定点击事件

首先,找到Model1对应的表单或列表里的removed布尔组件(比如复选框),给它绑定onClick事件。在事件里触发一个自定义对话框,用来收集用户的移除备注。

你可以先在App Maker里创建一个对话框页面,里面添加一个多行文本框(用来输入备注)和确认/取消按钮。然后在removed字段的点击事件里写:

// 触发备注输入对话框
app.showDialog(app.pages.RemovalNoteDialog);

2. 处理对话框的确认操作(核心迁移逻辑)

在对话框的确认按钮上绑定onClick事件,这里完成记录复制到归档模型和移除原模型记录的操作:

// 获取当前要迁移的Model1记录
var sourceItem = app.datasources.Model1.item;
// 获取用户输入的移除备注
var note = widget.parent.parent.widgets.RemovalNoteText.value;

// 创建Model2的归档记录
var archiveItem = app.models.Model2.newRecord();

// 复制Model1的字段到Model2(如果字段名不完全一致,手动对应即可)
archiveItem.Title = sourceItem.Title;
archiveItem.Description = sourceItem.Description;
// 添加移除备注和归档时间
archiveItem.RemovalNote = note;
archiveItem.ArchivedAt = new Date();

// 用事务确保操作原子性(避免保存归档成功但删除原记录失败的情况)
app.runInTransaction(function() {
  // 保存归档记录
  app.saveRecords([archiveItem]);
  // 删除Model1的原记录
  app.deleteRecords([sourceItem]);
});

// 关闭对话框并刷新Model1的数据源
app.closeDialog();
app.datasources.Model1.load();

3. 确保Model1不再显示已迁移记录

如果选择了删除原记录,那Model1的列表/表单自然不会再显示这条数据。如果不想删除原记录(比如需要保留痕迹),可以给Model1新增一个IsArchived布尔字段,迁移时把它设为true,然后在Model1的数据源过滤条件里添加:

IsArchived == false

这样已归档的记录就会被自动隐藏。

额外提示

  • 记得给Model2添加对应字段,确保能完整存储Model1的记录信息(包括新增的移除备注、归档时间等)
  • 可以在对话框里加必填校验,确保用户必须填写备注才能完成迁移

内容的提问来源于stack exchange,提问作者Aleksandar Nakevski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:45:47