Google App Maker如何应用自定义数据验证

时间:2017-08-31 11:58:44

标签: google-app-maker

App Maker具有默认验证和正则表达式验证,一旦发生错误,它将突出显示字段。

我们要求进行自定义验证以检查模型中的重复记录。是否有任何功能来检查验证或我们是否需要执行任何脚本?

1 个答案:

答案 0 :(得分:2)

避免数据重复的最佳方法是使用Cloud SQL对表执行“唯一”约束。

如果您不想使用Cloud 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
  }
});