fg.hasError('minlength', 'name') error
bl9l opened this issue · 14 comments
Could you provide more of your code? Did you passed your validation model as the second parameter for the _formGroup
?
I did.
import {FormControl, FormGroup, Validators} from '@ng-stack/forms';
_formGroup: FormGroup<RegisterModel> = new FormGroup({
name: new FormControl<string>('', [Validators.required]),
phone: new FormControl<string>('', [Validators.required]),
username: new FormControl<string>('', [Validators.required, Validators.email]),
password: new FormControl<string>('', [Validators.required, Validators.minLength(6)]),
});
So, why you need minlength
error name (not minLength
)?
Because, if I use minLength, the error check does not work.
And mat-error, does not apear
Богдан, ви зможете читати українською мої коментарі?
да
Ок, я видалив свою підказку із MyValidatorsModel
, оскільки в такому разі досить багато що прийдеться переписувати. Вам цей варіант краще не застосовувати.
Я вже досить давно займався цим модулем і позабував що і як тут працює, тому мені потрібно деякий час для виправлення цього багу.
P.S. Ноги у нього ростуть звідси angular/angular#28721
фикс раеботает, если расширить валидарор вот так
class MyValidatorsModel extends ValidatorsModel {
minlength: {
requiredLength: number;
actualLength: number;
};
}
_formGroup = new FormGroup<RegisterModel, MyValidatorsModel>({
name: new FormControl<string, MyValidatorsModel>('', [Validators.required]),
phone: new FormControl<string, MyValidatorsModel>('', [Validators.required]),
username: new FormControl<string, MyValidatorsModel>('', [Validators.required, Validators.email]),
password: new FormControl<string, MyValidatorsModel>('', [Validators.required, Validators.minLength(6)]),
});
Приходится указывать MyValidatorsModel, на кождом из FormControl.
Но этот код работает
Оновлюйте:
npm i @ng-stack/forms@^1.3.3
Після оновлення повинно працювати і так:
_formGroup = new FormGroup<RegisterModel>({
name: new FormControl('', [Validators.required]),
phone: new FormControl('', [Validators.required]),
username: new FormControl('', [Validators.required, Validators.email]),
password: new FormControl('', [Validators.required, Validators.minLength(6)]),
});
Работает. Спасибо
For anyone having this trouble you can change validation.type.toLowerCase() and compare it to hasError() (which is in lower case).. who know why??