AngularJS的ngMessages模块中$ error的长度

时间:2018-09-25 21:18:45

标签: angularjs count ng-messages

这是使用ngMessages模块的基本方法。 myForm.myName.$error返回错误列表。我想得到一些错误。我已经尝试过{{myForm.myName.$error | json}}.lengthmyForm.myName.$error.length

<form name="myForm">
  <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 ng-message-default>This field has an input error</div>
  </div>
</form>

1 个答案:

答案 0 :(得分:1)

万一您在documentation for the ngMessages module.中错过了它

  

默认情况下,ngMessages在任何时候都只会显示一条消息,用于特定的键/值集合。

这意味着myForm.myName.$error最多只能拥有一个属性。

如果要支持多条消息的显示,请在ng-messages-multiple指令旁边应用ng-messages属性。应用此功能后,您可以通过创建一个辅助函数来检索活动错误的数量。

function getErrorCount() {
    return Object.keys(myForm.myName.$error).length;
}

Here's a demonstration of the suggestion above.