Я пытаюсь добавить условие в свою форму. В основном я хочу сделать некоторые поля обязательными, только если установлен флажок. Вот мой код.
onCreateContactDetailsForm() {
this.contactDetailsForm = new FormGroup({
firstName: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
mobileNumber: new FormControl(null, [Validators.required, Validators.pattern('^([0|\+[0-9]{1,5})?([1-9][0-9]{8}|[1-9][0-9]{9})$')]),
surname: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
workEmail: new FormControl(null, [Validators.email]),
identityValue: new FormControl('', [Validators.required]),
personalEmail: new FormControl(null, [Validators.email]),
exitDate: new FormControl('', [Validators.required]),
exitNoticeDate: new FormControl('', [Validators.required]),
amount: new FormControl('', [Validators.pattern('^$|^[0-9]*$')]),
dateOfBirth: new FormControl('', [Validators.required]),
indebtedToEmployer: new FormControl(false),
isHrEmailAddress: new FormControl(false),
if(isHrEmailAddress) {
address1: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
address2: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
address3: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
postalCode: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
postalCountry: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
}
});
}
Оператор if, похоже, не может быть помещен здесь, поскольку он дает эту ошибку в моем редакторе Type '(isHrEmailAddress: any) => void' is missing the following properties from type 'AbstractControl': validator, asyncValidator, _parent, _asyncValidationSubscription, and 44 more.
Есть ли более простой способ сделать это ?