2017-02-05 2 views
0

У меня есть многочастная форма, и я надеялся, что для нее будет использована внешняя следующая/предыдущая навигация. Тем не менее, я должен иметь возможность проверять каждую часть формы, когда я перехожу к следующему.Угловой материал проверяет форму по внешнему событию

У меня есть следующий пример: определение формы

<form layout="column" name="nProfileForm1"> 
    <md-input-container> 
     <label>City</label> 
     <input ng-model="profile.city" required="" name="nCity"> 
     <div ng-messages="nProfileForm1.nCity.$error" ng-if="nProfileForm1.nCity.$touched&&!nProfileForm1.nCity.$valid"> 
      <div ng-message="required">City is required.</div> 
     </div> 
    </md-input-container> 
</form> 

Если поле взаимодействуют с, то проверкой работает находка и текст ошибки правильно показана. Однако я не могу определить способ запуска проверки всех полей формы, если происходит внешнее событие. Кажется некорректным добавить собственную кнопку отправки в каждую часть формы. То, что я ищу, похоже на схему схемы:

$scope.$broadcast('schemaFormValidate') 

Любые идеи были бы оценены.

По существу, Int он следующий пример, который я хочу, чтобы поле загораются красным цветом, как только я нажимаю следующий: http://codepen.io/Vladimir_M/pen/OWEjOd

UPDATE: обновленный codePen включать одно решение, которое я нашел.

ответ

0

После некоторых попыток я нашел один из способов добиться эффекта, с которым я столкнулся, с минимальным кодом. Получение области формы и установка $ отправленного свойства формы в true делает трюк. Он оценивает всю форму.

$scope.doSubmit = function(){ 
    var formScope = angular.element(nProfileForm1).scope(); 
    formScope.nProfileForm1.$submitted = true; 
    } 

Не стесняйтесь предлагать лучшие способы.