2015-08-30 2 views
0

У меня есть форма внутри модального всплывающего окна. Я пытаюсь запустить проверку формы на входах после того, как пользователь попытается отправить форму. До сих пор я изо всех сил пытаюсь заставить все работать.Проверка формы с помощью модалов в Angular

На мой взгляд, я следующее (извиняюсь, если есть какие-либо ошибки синтаксиса, я превращаю- из нефрита на лету):

<script type="text/ng-template", id="modalVideoNew"> 
    <div class="ngdialog-message"> 
    <form class="form-horizontal" ng-submit="submitForm()" novalidate name="newVideoForm"> 
    ... 
     <div class="form-group"> 
     <label> Title </label> 
     <div class="col-sm-8"> 
     <input type="text" name="title", required='', ng-model="newVideoForm.title"> 
     <span class="text-danger" ng-show="validateInput('newVideoForm.title', 'required')"> This field is required</span> 
    </div> 
    </div> 
</div> 
</script> 

, а затем в мой контроллер, где я вызывая нг-диалог всплывал, у меня есть это:

  $scope.newVideo = function() { 
      ngDialog.openConfirm({ 
      template: 'modalVideoNew', 
      className: 'ngdialog-theme-default', 
      scope: $scope 
     }).then(function() { 
      $scope.validateInput = function(name, type) { 
      var input = $scope.newVideoForm[name]; 
      return (input.$dirty || $scope.submitted) && input.$error[type]; 
     }; 
      var newVideo = $scope.newVideoForm; 
     ... 

Прямо сейчас, я все еще в состоянии представить форму, но как только я открываю его обратно я вижу «требуется Это поле» сообщение об ошибке. Кроме того, ввод предварительно заполняется [object, Object] вместо пустого текстового поля ввода.

+0

можете ли вы предоставить плункер? –

+0

У вас есть отдельный контроллер для вашего модального? – bobleujr

ответ

2

Способ очистки вашей модели будет работать с использованием модели var, которая принадлежит вашему родительскому контроллеру, и очистки ее в обратном вызове. Посмотрите, как шаблон подключил ваш родительский контроллер var FormData.

Проверить this из

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

+0

Этот ответ предлагает очень здравый совет, может вызвать всевозможные проблемы с очисткой переменных области, если вы этого не сделаете (я сделал эту ошибку). Гораздо чище, если вы создаете отдельный контроллер для формы +1 – drjimmie1976

Смежные вопросы