Google App Maker如何保存和更新记录?

时间:2017-08-30 07:08:25

标签: google-app-maker

我们有在App Maker中创建和更新项目的方法,但它会保存整个记录。如果我只想更新按钮上的特定字段,则没有选项。

如果有更新特定字段的选项,请发帖吗?

1 个答案:

答案 0 :(得分:2)

自动保存模式

在自动保存模式下,App Maker会立即保存每个字段,因此您可以保持每个字段的节省粒度。换句话说,只要字段的值发生变化,App Maker就会向服务器发送请求以保存修改。

// this code will trigger async call to server to save the modification
// only for this particular field.
app.datasources.MyDatasource.item.MyField = 'My new value';

手动保存模式

使用手动保存模式,没有简单的方法可以单独保存修改子集,因为无论何时调用'saveChanges'方法,App Maker都会尝试保留对数据源所做的所有修改。除非您没有其他选择,否则以下是我不推荐的一些非常差的解决方法:

// Implementation with callback chaining if field save
// order matters. It will work extremely slow.
var ds = app.datasources.MyDatasource; 
ds.item.MyField1 = 'My new value 1';

ds.saveChanges(function() {
  ds.item.MyField2 = 'My new value 2';

  ds.saveChanges(function() {
    ds.item.MyField3 = 'My new value 3';
    ...  
  });
});


// Implementation without chaining. In theory should work
// faster(if it would work at all...)
var ds = app.datasources.MyDatasource;

ds.item.MyField1 = 'My new value 1';
ds.saveChanges();

ds.item.MyField2 = 'My new value 2';
ds.saveChanges();

ds.item.MyField3 = 'My new value 3';
ds.saveChanges();
...  

服务器脚本

与手动保存模式完全相同的答案,它是可行的,但我不建议这样做,因为性能会显着下降。

record.MyField1 = 'My new value 1';
app.saveRecords([record]);

record.MyField2 = 'My new value 2';
app.saveRecords([record]);

record.MyField3 = 'My new value 3';
app.saveRecords([record]);
...