我在使用ng-repeat语句进行验证时遇到了困难.我有以下代码.我只想在名称字段为空时将has-error添加到div.form-group.我似乎无法让它工作.有什么想法吗?
<div ng-app="app" ng-controller="bookController"> <form name="myForm" ng-submit="submitMe(this)" novalidate> <table class="table"> <tr ng-repeat="order in orders"> <ng-form name="innerForm"> <td>{{ order.id }}</td> <td> <div class="form-group" ng-class="{ 'has-error' : innerForm.name.$invalid && submitted }"> <input type="input" ng-model="order.name" name="name" required /> </div> </td> </ng-form> </tr> </table> <input type="submit" value="submit" ng-click="submitted = true" /> </form> <pre> {{ orders | json }} </pre> </div> var app = angular.module("app",[]); app.controller("bookController",function ($scope) { $scope.submitMe = function(form) { console.log(form); }; $scope.orders = [{ id: 1,name: '' },{ id: 2,name: 'hat' }]; });
解决方法
将ngForm指令移动到包含ngRepeat指令的元素:
<tr ng-repeat="order in orders" ng-form="innerForm">