Я строю форму с реактивной формой, но у меня есть некоторая вложенная группа внутри группы, и для этой вложенной группы у меня есть только проверка, необходимая для ввода. У меня проблема в том, что внутри этой вложенной группы мне нужно проверить, что если пользователь вводит что-то в один вход, другие входы в этой группе больше не требуются.
Это то, что у меня есть сейчас, я попытался добавить Validators.required
RequiredValidatonOnlyOne () .
Можно ли добавить какую-то пользовательскую проверку, которая будет проверять, что пользователь вводит что-то только в один вход
this.formGroup = this.formBuilder.group({
lastName: [{ value: '', disabled: false }, [Validators.maxLength(50), Validators.required]],
phones: this.formBuilder.group({
phone: [{ value: '', disabled: false }],
phone2: [{ value: '', disabled: false }],
mobile: [{ value: '', disabled: false }],
}, this.RequiredValidatonOnlyOne())
});
private RequiredValidatonOnlyOne(){
return (controlGroup) => {
const controls = controlGroup.controls;
if (controls) {
const theOne = Object.keys(controls).find(key => controls[key].valid);
if (!theOne) {
return {
atLeastOneRequired: {
text: 'At least one should be selected'
}
};
}
}
return null;
};
}