Angular ng-show не выполняется с тегом ng-message - PullRequest
0 голосов
/ 18 мая 2018

Не уверен, что я здесь делаю не так. Я хочу отобразить ng-сообщение после того, как пользователь отправит форму. Тем не менее, сообщение отображается, когда форма отображается. Кажется, что нг-шоу не оценивает.

Я напечатал поле в выражении, и оно ложно, когда я открываю форму. Кроме того, я изменяю его на ng-hide, но у меня та же проблема.

Не могли бы вы взглянуть ..

<div class="small-12">
   <label>first name
<span class="field-error"> *</span>
</label>
<input name="firstName" 
  type="text" 
  maxlength="25" 
  ng-disabled="isSubmitting" required 
  ng-model="candidate.firstName" 
  ng-class="{error:isFormSubmitted && contactForm.firstName.$error.required}" />

<div ng-messages="forms.contactForm.firstName.$error" 
    class="errorFormLabel" role='alert'>
   <div ng-message="required" 
    ng-show="isFormSubmitted">This is a required field {{isFormSubmitted}}
  </div>
 </div>
</div>

1 Ответ

0 голосов
/ 18 мая 2018

Думайте о ng-messages как о switch, вы можете вкладывать / ng-show / ng-hide в директиву ng-message, но не использовать их вместе

Например:

<div ng-messages="forms.contactForm.firstName.$error" 
    class="errorFormLabel" role='alert'>
   <div ng-message="required">
      <span ng-show="isFormSubmitted">This is a required field {{isFormSubmitted}}</span>
   </div>
 </div>
</div>

Если вам не нужен дополнительный элемент: <span>, попробуйте ng-if, в основном ng-if имеет приоритет выше, чем любая другая директива angularjs, и это приведет к удалению директивы ng-message издерево DOM, если выражение не является положительным.

<div ng-message="required" 
    ng-if="isFormSubmitted">This is a required field {{isFormSubmitted}}
  </div>
...