2014-11-08 125 views
1

所有,AngularJS驗證 - NG的消息,多不顯示多個錯誤

我工作的AngularJS表格上,我試圖看NG的消息指示如何與NG的消息海報作品。我似乎無法讓它接受多個錯誤。我希望同時看到所需的和最小的錯誤,但由於某種原因,我只看到必需的,然後是最小的。我發佈了下面的HTML。我使用了bower,在我的index.html頁面中調用腳本,並且根據需要將其注入到我的app.js模塊中。

我在這個項目中使用AngularJS v1.3.2。

<div class="panel panel-default"> 
    <div class="panel-heading"> 
    <h1>Validation Test Form</h1> 
    </div> 
    <div class="panel-body"> 
    <form class="form" name="form" role="form" ng-submit="submit(form)"> 
     <div class="row"> 
     <div class="form-group" show-errors> 
      <label for="name">Name:</label> 
      <input 
      class="form-control" 
      type="text" 
      name="name" 
      ng-model="formModel.name" 
      minlength="5" 
      required/> 
      <div ng-messages="form.name.$error" ng-messages-multiple class="has-error"> 
      <div ng-message="required">Required!</div> 
      <div ng-message="minlength">Minimum length is 5</div> 
      </div> 
     </div> 
     </div> 
     <div class="row"> 
     <div class="form-group"> 
      <button class="btn btn-success" type="submit">Save</button> 
     </div> 
     </div> 
    </form> 
    </div> 
    <div class="panel-footer"> 
    {{formError}} 
    </div> 
</div> 

回答

1

嘗試使用ng-minlength代替minlength

<input 
      class="form-control" 
      type="text" 
      name="name" 
      ng-model="formModel.name" 
      ng-minlength="5" 
      required/> 

代替

<input 
      class="form-control" 
      type="text" 
      name="name" 
      ng-model="formModel.name" 
      minlength="5" 
      required/> 

編輯

它是爲NG-指令MINLENGTH正常行爲,這個指令驗證上當我們沒有輸入0的大小時,輸入一個值,它至少需要5個字符長,但可以將該字段留空,並且不幸的是,無論如何,你不能達到目的。我建議你創建自定義指令,或者看看ng-pattern指令和需求行爲,如果你非常希望顯示兩條消息。

+1

感謝您的回覆。我做了這個改變,但是現在這個錯誤根本不顯示。 – jaxmeier 2014-11-09 21:28:08

+0

我編輯了答案。 – 2014-11-10 08:35:56

+0

亞歷克斯,感謝您的澄清和額外的細節... – jaxmeier 2014-11-10 13:33:45