У меня есть FormArray в FormGroup, и каждый из FormArray имеет несколько FormGroup и может добавлять их динамически.
У меня есть Custom Validator, где он проверяет все данные в каждом из FormArray для проверкиповторение данных.В настоящее время он также проверяет исходные данные с самим собой, который выдает ошибку.
Можно ли как-то ограничить ошибку от выброса себя при проверке исходных данных .?
Работает нормально при добавлении новых данных и имеет те же значения, что и существующие.
for (let assign of this.additionalAssign) {
const fg = new FormGroup({
"payRate": new FormControl(assign.jobRate, Validators.required),
"position": new FormControl(assign.position, Validators.required),
"location": new FormControl(assign.location, Validators.required),
"department": new FormControl(assign.department, Validators.required)
});
fg.validator = this.jobDataValidator.bind(this);
this.addPay.push(fg);
}
Валидатор:
jobDataValidator(control: FormControl): {[s: string]: boolean} {
let value = this.getJobLocDeptValidity(control);
if(value.length > 0){
return {'sameJobData': true};
}
return null;
}
getJobLocDeptValidity(control: FormControl):any[] {
let additionalAssignments = this.additionalAssignmentsForm.value.payArray;
let test = additionalAssignments.filter(item => !!control.value.position && item.position === !control.value.location && item.location === control.value.location);
return test;
}
Снимок экрана:
URL-адрес Stackblitz: https://stackblitz.com/edit/angular-custom-validator-defaultdata