2017-08-30 14 views
0

アプリメーカーのアイテムを作成して更新する方法がありますが、レコード全体が保存されます。ボタンのクリックで特定のフィールドのみを更新したい場合、オプションはありません。あなたがあたり、フィールド節約粒度を持っているので、Google Appメーカーのレコードの保存と更新

モードのAppメーカーオートセーブではどんなオプションがある場合、特定のフィールドを更新する

+0

なぜそれが必要ですか? –

答えて

1

自動セーブモード

を投稿してくださいすぐに、すべてのフィールドを保存します。つまり、フィールドの値が変更されるたびに、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メーカーがに行われたすべての変更を永続化しようと呼び出すたび以来、個別の修正サブセットを保存する簡単な方法はありません情報元。

// 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]); 
... 
+0

ありがとうございます。自動保存モードを無効にしたいのですが、これを行う方法があります。 –

+0

確かに、データソース設定で「手動保存モード」チェックボックスを見つけることができます:https://stackoverflow.com/questions/45686397/how-to-i-revert-to-manual-save-mode/45696897#45696897 –

+0

ありがとうpavelそれは助ける –

関連する問題