Andrello
@Andrello

Как обновить валидацию в пошаговой форме регистрации на angular?

Разрабатываю пошаговую форму регистрации на angular, столкнулся с проблемой: заполненные в первом шаге поля (с валидацией) восстанавливаются из localstorage при шаге назад (например вернулся из 2го шага поправить данные в первом) при этом валидация заново не происходит, поля имеют статус ng-pristine.
Как обновить валидацию?
  • Вопрос задан
  • 3697 просмотров
Пригласить эксперта
Ответы на вопрос 2
maxaon
@maxaon
Попробуйте поколдовать с формой, например вызвав в контроллере form.$setDirty()
$setDirty()
И поэкспериментируйте с контроллером формы
Ответ написан
AMar4enko
@AMar4enko
Все верно, на самом деле.
ng-dirty появляется тогда, когда пользователь поработал с формой.
До этого будет ng-pristine.
Но сама валидация (ng-invalid-required, например), обновляется и после программного изменения модели.
Так что вам, скорей всего, нужно чуть-чуть изменить логику в своем контроллере. Я сделал так, что у меня есть переменная, которая отвечает за то, показывать ошибки или нет.
Логика такая:
- пользователь редактирует новую форму, мы ему ничего не показываем (зачем его отвлекать ?)
- по нажатию на "Сохранить", "Вперед" и т. д. проверяем, если форма не валидна, мы включаем отображение ошибок, и ждем пока он все ошибки не исправит, а доступность кнопки определяем по form.$dirty
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы