Google 应用制作工具如何保存和更新记录?
Google App Maker how to save and update records?
我们有在应用制作工具中创建和更新项目的方法,但它会保存整个记录。如果我只想更新单击按钮时的特定字段,则没有选项。
请post是否有更新特定字段的选项?
自动保存模式
在自动保存模式下,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]);
...
我们有在应用制作工具中创建和更新项目的方法,但它会保存整个记录。如果我只想更新单击按钮时的特定字段,则没有选项。
请post是否有更新特定字段的选项?
自动保存模式
在自动保存模式下,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]);
...