亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何驗證使用ng-repeat,ng-show(angular)動態創建的輸入

如何驗證使用ng-repeat,ng-show(angular)動態創建的輸入

動漫人物 2019-07-29 16:44:09
如何驗證使用ng-repeat,ng-show(angular)動態創建的輸入我有一個使用ng-repeat創建的表。我想為表中的每個元素添加驗證。問題是每個輸入單元格與其上方和下方的單元格具有相同的名稱。我試圖使用該{{$index}}值來命名輸入,但盡管HTML中的字符串文字顯示正確,但它現在正在工作。這是我現在的代碼:<tr ng-repeat="r in model.BSM ">    <td>       <input ng-model="r.QTY" class="span1" name="QTY{{$index}}" ng-pattern="/^[\d]*\.?[\d]*$/" required/>       <span class="alert-error" ng-show="form.QTY{{$index}}.$error.pattern"><strong>Requires a number.</strong></span>       <span class="alert-error" ng-show="form.QTY{{$index}}.$error.required"><strong>*Required</strong></span>    </td></tr>我已經嘗試刪除{{}}from索引,但這也不起作用。截至目前,輸入的驗證屬性工作正常,但不顯示錯誤消息。有人有什么建議嗎?編輯:除了下面的好答案,這里有一篇博客文章更詳細地介紹了這個問題:http://www.thebhwgroup.com/blog/2014/08/angularjs-html-form-design-part-2 /
查看完整描述

3 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

自從問到這個問題以來,Angular團隊已經通過動態創建輸入名稱來解決了這個問題。

使用Angular 1.3及更高版本,您現在可以執行以下操作:

<form name="vm.myForm" novalidate>
  <div ng-repeat="p in vm.persons">
    <input type="text" name="person_{{$index}}" ng-model="p" required>
    <span ng-show="vm.myForm['person_' + $index].$invalid">Enter a name</span>
  </div></form>

演示

Angular 1.3還引入了ngMessages,這是一種更強大的表單驗證工具。您可以使用與ngMessages相同的技術:

<form name="vm.myFormNgMsg" novalidate>
    <div ng-repeat="p in vm.persons">
      <input type="text" name="person_{{$index}}" ng-model="p" required>
      <span ng-messages="vm.myFormNgMsg['person_' + $index].$error">
        <span ng-message="required">Enter a name</span>
      </span>
    </div>
  </form>


查看完整回答
反對 回復 2019-07-29
  • 3 回答
  • 0 關注
  • 1106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號