2017-08-31 7 views
0

アプリメーカーには、デフォルトの検証と正規表現の検証があり、エラーが発生するとそのフィールドを強調表示します。Google Appメーカーの検証

モデルの重複レコードをチェックするためにカスタム検証を行う必要があります。検証を確認する関数があるか、スクリプトを実行する必要がありますか?

答えて

1

データの重複を避ける最良の方法は、Cloud SQLを使用してテーブルに「一意」制約を適用することです。あなたはクラウドSQLを使用して、ロック、クエリとモデルイベントを使用して手動でユニーク制約をエミュレートすることができドライブのテーブルに行きたいしたくない場合は

// onCreate model event (actually it is onBeforeCreate) 
// this events accepts about-to-create record as parameter 
var lock = LockService.getScriptLock(); 
lock.waitLock(5000); 

var query = app.models.MyModel.newQuery(); 
query.filters.SomeField._equals = record.SomeField; 

var records = query.run(); 

if (records.length > 0) { 
    throw new Error('Record with SomeField value equal to ' + record.SomeField + 
        ' already exists.'); 
} 

lock.releaseLock(); 

あなたがここにlockが必要独自の制約に違反するレコードを他のスレッドが同時に作成しないようにします。

次にあなたがcreateItem関数コールバックでUI上のエラーを処理することができます動作しますが、しかし、私はフィールドの下のフロントエンドでユーザーにこのメッセージを表示したい

// create button onClick handler 
widget.datasource.createItem({ 
    success: function(record) { 
    // TODO 
    }, 
    failure: function(error) { 
    // TODO 
    } 
}); 
+0

感謝。 –

+0

私は答えにクライアント側の部分を追加しました。 –

+0

ボタンのonClickハンドラ を作成// widget.datasource.createItem({ 成功:関数(レコード){// TODO }、 障害:機能(エラー){// TODO }})。これはあなたが言及しているコードブロックですか?私は必要なエラーメッセージのようなコントロールの下にエラーメッセージを表示したい。 –

関連する問題