Вы получили сообщение об ошибке, потому что get f(){...}
не возвращает FromGroup
. Он возвращает controls
объект FromGroup
, и для этого объекта не определен атрибут form
. И из-за этого вы получаете сообщение об ошибке Cannot read property 'valid' of undefined
.
Вы должны использовать FormGroup
напрямую:
(ngSubmit)="registerForm.valid && onSubmit(form.value)"
Обновление:
Как я могу видеть из предоставленного вами стекаблица, проверка работает. Ваш класс ошибок is-invalid
применяется только в том случае, если форма отправлена, что вы и делаете, когда форма недействительна.
Таким образом, вы должны изменить применение вашего класса ошибок или добавить другое логическое значение, для которого установлено значение true, когда вы нажимаете на кнопку отправки.
Первый вариант
[ngClass]="{ 'is-invalid': f.jobid.errors }"
Второй вариант (рекомендуется imo)
В вашем HTML:
(ngSubmit)="onSubmit(form.value)"
И в вашем компоненте:
onSubmit(event:any) {
console.log(event)
this.submitted = true;
// stop here if form is not valid
// RECOMMENDATION Use !FromGroup.valid, because with async validation neither valid nor invalid is set
if (!this.registerForm.valid) {
return;
}
Swal.fire("Successfull","New employee registration is successfull","success")
}
В этом случае представленный флаг установлен в true, и ваша ошибка класс применяется правильно.