google appmaker 如何在自动保存模式下实现保存记录的回调功能?

How to achieve callback functionality on saving a record when in auto save mode in google appmaker?

我有一个处于自动保存模式的模型。当用户单击下面的按钮时,将执行代码。 我希望状态发生变化并得到保存,然后它应该执行刷新功能,因为刷新功能取决于状态值。但是在保存新状态之前执行以下代码刷新功能。

       widget.datasource.item.status='inside';
       refreshPanelWithColor();

我真正想做的是具有回调功能,但我不能使用 saveChanges,因为它仅用于手动保存模式。

      widget.datasource.item.status='inside';
     widget.datasource.saveChanges(function() {
     refreshPanelWithColor();
     });

这里如何在不切换到手动保存模式的情况下实现回调功能?

您只需在保存事件后将您的函数绑定到数据源。

正如 Markus 在他的评论中所解释的那样,目前此功能不可用。您当然可以使用另一种解决方案,即使用服务器脚本并重新加载数据源项。为了实现这一点,您的客户端脚本应该类似于:

var recordKey = widget.datasource.item._key;
var status = "inside";
google.script.run.withSuccessHandler(function(){
    widget.datasource.item._reload(function(){
        refreshPanelWithColor();
    });
}).withFailureHandler(function(err){
    console.err(err.toString());
}).updateDesiredRecord(recordKey, status);

当然,您需要实现从客户端调用的服务器脚本。它应该看起来像这样:

function updateDesiredRecord(recordKey, status){
    var record = app.models.MYMODEL.getRecord(recordKey);
    record.status = status;
    app.saveRecords([record]);
}

我不确定你的 refreshPanelWithColor() 功能是做什么的,但我希望你了解这个解决方案的目的。