在 Slickgrid 内联编辑中,我们尝试根据一些标准验证数据。但是标准检查需要数据库中的一些修改或现有数据。所以在验证之前将从数据库中获取标准所需的数据。此数据获取过程是异步过程。在此异步过程完成后,将给出数据验证状态。基于该验证状态,我们的自定义验证应该可以工作。正如我们所料。
所以这个场景我们尝试了下面的代码块。但它并没有像我们预期的那样工作。因为异步进程在自定义验证器中不可用。
列定义:
[{
id:'project_name',
nameKey:'Project Name',
field:'project_name',
sortable: true,
type: FieldType.string,
filterable: true,
filter: {
model: Filters.compoundInput
},
cssClass: 'left-align',
editor: {
model: Editors.longText,
validator: ProjectValidator
}
}]
自定义验证方法:
ProjectValidator = (value: any, args?: EditorArguments) => {
let queryTerm = value;
return this.queryProjects(queryTerm).then(response=>{ // Checking the project name exist in database
if(response['status']=='ALREADY_EXIST'){
return { valid: false, msg: 'Entered project name existing in database. Please enter unique project.' };
}
return { valid: true, msg: '' };
})
}
因此,请指导我在 slickgrid 内联编辑功能中实现此异步自定义验证。