Есть много вариантов, например, вы можете проверить поле первой формы и использовать setVAlidataors
для второй формы, чтобы назначить новый валидатор, например,
if (this.firstForm.get('formControlThatYouNeed').value) {
this.secondForm.get('formControlYouNeedToUpdate').setValidators([Validator.required]);
}
не забудьте включить другие валидаторы (еслидля этого элемента управления) в массиве setVAlidataors
, так как этот метод удаляет старые валидаторы. Также вы можете создать собственный валидатор, например,
customValidator(firstFormFieldValue: any): ValidatorFn {
return (control: AbstractControl | null) => {
if (firstFormFieldValue.notSelected) {
return null;
}
const error = Validators.required(control);
if (error) {
const firstError = Object.keys(error)[0];
return { [firstError]: { message } };
}
return null;
}
}
и использовать его вот так
this.fb.group({
field: ['fieldValue', [this.customValidator(this.firstFormFieldValue)]],
}));