2017-08-31 30 views
0

应用程序制造商具有默认验证和正则表达式验证,一旦发生错误,它将突出显示字段。Google应用程序制造商验证

我们有要求做自定义验证来检查模型中的重复记录是否有任何函数来检查验证或我们需要做任何脚本。

回答

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这里阻止其他线程同时创建违反您独特约束的记录。

然后你就可以处理UI上的错误createItem回调函数:

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

感谢的作品,但我想在场上下方前端显示此消息给用户。 –

+0

我已将客户端部分添加到答案中。 –

+0

//创建按钮的onClick处理程序 widget.datasource.createItem({ 成功:功能(记录){// TODO }, 失败:功能(错误){// TODO } });这是你提到的代码块吗?我想在控件下面显示错误消息,如所需的错误消息。 –

相关问题