angular只能對(duì)form進(jìn)行校驗(yàn), 如果你想只對(duì)某些input元素進(jìn)行校驗(yàn), 可以使用ng-form指令. 以下是我在開發(fā)新建用戶界面時(shí)的代碼:
<div class="row-fluid" ng-repeat="createdUser in createdUsers track by $index" ng-form="userForm">
<div class="span8"><input type="text" class="input-block-level" name="createdUser"
jq-placeholder="{{'msgCreateUserTip'|translate}}"
ng-model="createdUsers[$index]"
ng-required="true"
ng-pattern="constants.pattern.emailOrMobile"
ng-minlength="3"/></div>
<div class="span4 text-overflow" ng-show="userForm.createdUser.$dirty && userForm.createdUser.$invalid">
<i class="fa fa-exclamation red"></i>
<span class="label label-important" ng-show="userForm.createdUser.$error.required"> 必填</span>
<span class="label label-important" ng-show="userForm.createdUser.$error.pattern"> {{'msgInputValidUser'|translate}}</span>
</div>
</div>
最關(guān)鍵的代碼在ng-form那部分和ng-pattern中
還有關(guān)于ng-repeat中'track by'的使用, 它可以用來指定每一個(gè)元素的區(qū)別. 某人是進(jìn)行對(duì)象的'=='比較. 對(duì)于字符串的數(shù)組, 必須指定為'track by $index'
如果你在數(shù)組中放置的通過id來唯一區(qū)別的項(xiàng), 可以這樣寫; 'track by id'
如果你不想在已進(jìn)入頁面就顯示錯(cuò)誤信息, 而是在用戶修改了信息后, 可以這樣使用:
<div class="help-block font-red" ng-show="deptForm.deptName.$dirty">
<em ng-show="deptForm.deptName.$error.required">部門名稱不能為空</em>
</div>
參考: