То, чего я пытаюсь достичь, объясняется в разделе Как активировать средства проверки форм в angular2< /а>
Но в этом нет объяснения того, как вы передаете состояние флажка в валидатор для текстового поля. Мой код выглядит следующим образом
Компонент:
export class FormComponent {
static get annotations() {
return [
new Component ({
templateUrl: "./form.component.html",
directives: [FORM_DIRECTIVES],
})
];
}
static get parameters() {
return [[FormBuilder]];
}
constructor (formbuilder) {
this.checkbox = new Control(false);
this.name = new Control('', nameValidator(this.checkbox.value));
this.myForm = formbuilder.group({
checkbox: this.checkbox,
name: this.name,
});
this.checkbox.valueChanges
.subscribe({
next: (value) => { this.name.updateValueAndValidity(); }
});
}
}
Функция проверки
function nameValidator(checkbox) {
return function(control) {
if (checkbox && !control.value)
return { required: true };
return null;
}
}
Но обновленное значение флажка не отражается в функции валидатора при вызове updateValueAndValidity()
. Что мне здесь не хватает?