Vis*_*dev 1 angular-material angular angular-reactive-forms
我有三个输入字段,即
因此,origin at
值必须介于最低分数和最高分数之间。
我的表格看起来像这样
this.fb.group({
min: ['', [Validators.required]],
max: ['', [Validators.required]],
origin: ['', [Validators.required, Validators.min(?), Validators.max(?)]] # I need value of min and max input field value here
})
Run Code Online (Sandbox Code Playgroud)
如何正确验证来源输入字段?
编辑:
注意 -fb
是FormBuilder
我的整个表格
this.scalesForm = this.fb.group({
scales: this.fb.array([
this.fb.group({
type: ['x', [Validators.required]],
name: ['', [Validators.required]],
components: this.fb.array([], [Validators.required]),
min: ['', [Validators.required]],
max: ['', [Validators.required]],
origin: ['', [Validators.required]]
}),
this.fb.group({
type: ['y', [Validators.required]],
name: ['', [Validators.required]],
components: this.fb.array([], [Validators.required]),
min: ['', [Validators.required]],
max: ['', [Validators.required]],
origin: ['', [Validators.required]]
})
])
});
Run Code Online (Sandbox Code Playgroud)
我将使用自定义验证器,在您的情况下类似:
export function ValidateOrigin(control: AbstractControl): {[key: string]: boolean} | null {
if (control.value < this.scalesForm.controls.scales[0].controls.min.value && control.value > this.scalesForm.controls.scales[0].controls.max.value) {
return { invalidOrigin: true };
} else {
return null;
}
}
// in the form declaration
this.fb.group({
min: ['', [Validators.required]],
max: ['', [Validators.required]],
origin: ['', [Validators.required, ValidateOrigin]]
})
Run Code Online (Sandbox Code Playgroud)