我仍在学习 Angular 2+ 和 Material2,所以如果您可以在回复中包含一些代码片段,我将不胜感激。
我正在尝试创建一个表单验证器,它使用来自我的 Angular 组件的布尔值。布尔值是从查询我的数据库的函数中设置的,如果提交的 ID 是唯一的,则返回 true。
但是,我不知道如何让验证器读取该布尔值。我也不太确定如何处理自定义验证器,而且这方面的文档似乎很少。
这是一些代码:
checkResult: boolean;
constructor(private http: HttpClient, private formBuilder: FormBuilder) {
this.form = this.formBuilder.group({
id: ['', Validators.required],
configuration: this.formBuilder.array([])
});
}
// Triggered when record is selected from table
viewRecord() {
this.form = this.formBuilder.group({
id: [formId, Validators.required, {validator: this.checkIdFn()}],
configuration: this.formBuilder.array([])
});
}
checkID(): boolean {
//queries database
result: boolean
this.checkResult = result
}
checkIdFn = (control: FormGroup) => {
return this.checkResult ? null : { valid: false };
}