сообщений (warning) при валидации форм? (просто уведомление, без фейла валидации формы) в реальных проектах
Просто уведомление, что такое фейл валидации?
имею ввиду не влиять на валидность формы, как это делают валидаторы, при записи error стандартно есть вариант просто методы делать и проверять, вчера на стеке почитал про расширение, и обертку над валидаторами, которые запишут ошибку в warning поле (расширенное) и вернул null
Можно сделать кастом функцию проверки валидности. Игнорить ворнинги
а при записи в валидаторе что-то вроде в error записывать в формате { warning: ... } ?
Если ключ одинаковый то вообще просто, да
Какие методы? У вас есть форма Из коробки в ангуляре и валидаторы к ней.
валидаторы для ошибок, я хочу иметь возможность выводить просто ворнинги. которые не будут отправлять форму в состояние invalid
Это все есть из коробки, читайте доку
не подскажите подробнее, пожалуйста? первый раз слышу, и сам в доке смог найти только Every time the value of a form control changes, Angular runs validation and generates either a list of validation errors that results in an INVALID status, or null, which results in a VALID status.
https://angular.io/guide/form-validation#defining-custom-validators
этот способ кастомного валидатора отправит форму в состояние INVALID либо VALID и резалт валидатора null а мне нужно выдать информативное сообщение, при этом оставить форму в состоянии VALID
Какой в этом смысл? Чтобы можно было отправить форму с ошибкой?
Можно конечно наколхозить логику внутри валидатора, чтобы он возвращал valid и слайд эффектом показывал варнинг
я говорю не про ошибку, а про warning выдать пользователю предупреждение, но да, при этом форма остается валидной конкретный кейс: у меня есть форма текстовым инпутом, дальше с инпутом для ввода паттерна регулярки я должен предупредить пользователя, о том, что текст в инпуте не проходит по регулярке но это лишь предупреждение, форма валидна с любым значением и может быть сохранена
ну тогда не добавляйте валидаторы в ангуляровскую форму в инпут, просто отдельно выводите в шаблоне сообщения
Либо просто дергать метод при изменении инпута и проверять отдельно
но если таких сообщений много, то достаточно громоздко выглядит, особенно при влиянии нескольких контролов на этот месседж пока в голове сидит идея сделать что-то вроде new WarningValidator, который будет принимать валидатор, но при этом выставлять только варнинг, возвращая null
как вариант валидацию оставить так как она работает, а варнинги сделать отдельно на более высоком уровне
типа функция которая принимает AbstractControl и WarningFn[] и возвращает Observable<варнингов или null>
В этом же случае придётся создавать свой форм контрол от базового с дополнительной логикой варнингов ?
нет, оставь их как есть
Обсуждают сегодня