angular只能对form进行校验, 如果你想只对某些input元素进行校验, 可以使用ng-form指令. 以下是我在开发新建用户界面时的代码:
<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>
最关键的代码在ng-form那部分和ng-pattern中
还有关于ng-repeat中'track by'的使用, 它可以用来指定每一个元素的区别. 某人是进行对象的'=='比较. 对于字符串的数组, 必须指定为'track by $index'
如果你在数组中放置的通过id来唯一区别的项, 可以这样写; 'track by id'
如果你不想在已进入页面就显示错误信息, 而是在用户修改了信息后, 可以这样使用:
<div class="help-block font-red" ng-show="deptForm.deptName.$dirty">
<em ng-show="deptForm.deptName.$error.required">部门名称不能为空</em>
</div>
参考:
网友评论