각도 4.4.3 반응 형을 사용하여 양식의 컨트롤 그룹에 대한 사용자 지정 유효성 검사를 구현합니다. docs 업데이트 방법에 따라 AbstractControl.setErrors은 AbstractControl의 errors 속성을 업데이트하며, 호출 된 해당 부모의 상태를 업데이트하지만 부모 errors 속성은 업데이트하지 않습니다. FormGroup 인스턴스에서 errors 속성을 설정하려고 했으므로 FormGroup에서 상속 한 setErrors를 사용합니다. 그러나 예상대로 오류를 업데이트하지 않습니다. 가 FormControl 인스턴스에서 그것을 시도 (아니지만 부모의 오류!) 자신의 오류뿐만 아니라 부모의 유효 상태를 업데이트 않습니다 :Angular Reactive Forms의 FormGroup 인스턴스에서 설정 오류가 예상대로 작동하지 않습니다.
let myFormGroup
= this._formBuilder
.group({
ctrl1: [null],
ctrl2: [null]
},
{
validator: (fg: FormGroup) => {
let ctrl1 = fg.get('ctrl1'),
ctrl2 = fg.get('ctrl2'),
ctrl1Empty = !ctrl1.value,
ctrl2Empty = !ctrl2.value;
//Successfully sets ctrl1.errors and fg.status, but not fg.errors
if (ctrl1empty)
ctrl1.setErrors({ctrl1required: true});
//Successfully sets ctrl2.errors and fg.status, but not fg.errors
if (ctrl2Empty)
ctrl2.setErrors({ctrl2required: true});
//Doesn't work, doesn't update fg.errors
if (ctrl1Empty && ctrl2Empty)
fg.setErrors({required: true});
}
})
어떤 생각이 왜 내 샘플 코드는
다음은?
Validator에서 직접 오류를 반환하는 경우 (즉,'return {required : true}') 작동하지만 여전히'setErrors'의 동작이'FormGroup' 인스턴스의 경우 인스턴스의 일치하지 않습니다. 'AbstractControl'. – Bahaa