onSave форма, переданная к директиве (formToValidate) должна помечаться как touched
if (this.formToValidate?.invalid) {
this.formToValidate.controls['loremControl'].setValue('LOREM');
this.formToValidate.markAllAsTouched();
} else this.action();
здесь loremControl меняет свое значение в 'LOREM', но markAllAsTouched не срабатывает
Почему?
console.log работает тут? то есть срабатывает этот код?
Стикер
да this.formValidate.getRawValue() выводит
попробуйте так https://t.me/angular_ru/715785
Да, не помечаются
саму форму в консоль выведите и проверьте touched как у формы так у контролов если тру
вроде же можно просто посмотреть класс у формы ng-touched?
это директивы formcontrolname/formcontrol ставят, до них еще дойти надо
кстати console.log(this.formToValidate.touched); выводит true но ng-touched к форме добавляется только после клика вне формы что это может значить?
Не юзер ивент. Или асинхронно
touched и должен срабатывать когда произвол тач на форму
Я выше вроде и привел такой совет
Стикер
если это так то попробуй что-то вроде этого export const markFormGroupTouched = (formGroup) => { (<any>Object).values(formGroup.controls).forEach(control => { control.markAsTouched(); if (control.controls) { markFormGroupTouched(control); } }); };
Используй request aminate frame Это детекшин трюки.
Это какой то жестокий костыль)
Ну ок. Как по другому? Только не говорите про сет таймаут. )
Обсуждают сегодня