简体   繁体   中英

Angularjs ngMessages ng-messages={multiple .$error}?

I'm new to angularjs and I was just wondering about what ngMessage 'ng-messages' attribute can do.

I'm trying to display one ngMessage for multiple input[type=text] elements. for example:

<input type="text" id="name1" ng-model="person.name1" />
<input type="text" id="name2" ng-model="person.name2" />
<input type="text" id="name3" ng-model="person.name3" />
<input type="text" id="name4" ng-model="person.name4" />

<div id="error" 
ng-messages="person.name1.$error || 
             person.name2.$error || 
             person.name3.$error || 
             person.name4.$error"

ng-show="person.name1.$touched || 
         person.name2.$touched || 
         person.name3.$touched || 
         person.name4.$touched"
ng-include="errorMsg.html"
/>

One validation message will display for all 4 input[type=text] attribute.

Try To use it it in the below manner:-

<form name="Form_Name">
  <label>
    Enter your name:
    <input type="text"
           name="myName"
           ng-model="name"
           ng-minlength="5"
           ng-maxlength="20"
           required />
  </label>
  <pre>myForm.myName.$error = {{ myForm.myName.$error | json }}</pre>

  <div ng-messages="myForm.myName.$error" style="color:maroon" role="alert">
    <div ng-message="required">You did not enter a field</div>
    <div ng-message="minlength">Your field is too short</div>
    <div ng-message="maxlength">Your field is too long</div>
  </div>
</form>

到目前为止,我遇到的最佳解决方案是使用data-ng-form='subform' name='subform'对所需的字段进行分组,然后对messages元素进行分组: data-ng-messages='subform.$error'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM