У вас есть идеи, почему пользовательский валидатор не работает при редактировании Angular 8 Реактивная форма?
Я использую один и тот же компонент для создания и редактирования. Пользовательский валидатор работает без проблем в форме создания, но совсем не работает в форме редактирования.
Вот код:
export class CreateEmployeeComponent implements OnInit {
employeeForm: FormGroup;
constructor(private fb: FormBuilder,
private route: ActivatedRoute,
private employeeService: EmployeeService) { }
ngOnInit() {
this.employeeForm = this.fb.group({
fullName: ['', [Validators.required, Validators.minLength(2), Validators.maxLength(10)]],
contactPreference: ['email'],
emailGroup: this.fb.group({
email: ['', [Validators.required, CustomValidators.emailDomain('gmail.com')]],
confirmEmail: ['', [Validators.required]],
}, { validator: matchEmails }),
phone: ['']
});
this.route.paramMap.subscribe(params => {
const empId = +params.get('id');
if (empId) {
this.getEmployee(empId);
}
});
}
getEmployee(id: number) {
this.employeeService.getEmployee(id)
.subscribe(
(employee: IEmployee) => this.editEmployee(employee),
(err: any) => console.log(err)
);
}
editEmployee(employee: IEmployee) {
this.employeeForm.patchValue({
fullName: employee.fullName,
contactPreference: employee.contactPreference,
emailGroup: {
email: employee.email,
confirmEmail: employee.email
},
phone: employee.phone
});
}
}
Если этот фрагмент кода слишком запутан, Не могли бы вы привести какой-нибудь пример, где реализовано редактирование реактивной формы с пользовательской проверкой?