首页 > 解决方案 > Google App Maker onClick 事件异步运行

问题描述

我有一个绑定到作为生产计划模型的数据源的表。我在每一行添加了一个按钮,单击该按钮将生产计划项目发送到生产。请注意,我有两个布尔字段,指示该项目是在计划中还是已发送到生产中。连接到表的数据源具有此查询构建器表达式,并且仅显示计划的生产线:planned = :true

我的按钮 onClick 事件代码如下:

widget.datasource.item.planned = false;
widget.datasource.item.inProduction = true;
app.datasources.productionPlan.load();

我想要实现的是我希望这个按钮将项目发送到生产并重新加载数据源,以便不包括发送到生产的项目。但是,这些代码行是异步运行的,我认为数据源会在布尔值更改之前重新加载。有什么方法可以使按钮的 onClick 事件上的客户端脚本行按特定顺序运行?

标签: google-app-maker

解决方案


处理它的最可靠方法是对数据源使用手动保存模式:productionPlan

var ds = widget.datasource;

ds.item.planned = false;
ds.item.inProduction = true;

ds.saveChanges({
  success: function() {
    app.datasources.productionPlan.load();
  },
  failure: function(error) {
   // todo
  }
});

您还可以考虑立即隐藏该行以使应用程序感觉更快:

widget.parent.visible = false;

推荐阅读