我使用this lib在页面上创建表格。
可以编辑此表格中的每一行。因此,如果启用了editMode,则会在行的每一列显示输入。其中一些输入是必需的。我想要显示红色文字"必需"或者只是红色边框,如果必填字段为空。 但是问题 - 当我使用表单时它很简单。但就我而言,我无法使用表格。
This answer对我没有好处,因为每一行都必须有唯一的表单名才能正确验证。
示例:https://jsfiddle.net/r8d1uq0L/147/
<div ng-repeat="user in users">
<div name="myform-{{user.name}}" ng-form>
<input type="text" ng-model='user.name' required name="field"/>
<span class="error" ng-show="myform.field.$error.required">Too long!</span>
</div>
</div>
<div>
<button ng-click="add()">
Add
</button>
</div>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.users = [{name:"1"}, {name:"2"}];
$scope.add = function(){
$scope.users.push({});
}
});
答案 0 :(得分:1)
无需创建动态表单名称,因为ng-repeat
在浏览器上绘制模板时会在每次迭代时创建新的子范围。因此,只需将名称保留为name="innerForm"
,然后使用innerForm.field.$error.required
对其进行验证。
<div ng-repeat="user in users">
<div name="innerForm" ng-form>
<input type="text" ng-model='user.name' required name="field"/>
{{myform[$index]}}
<span class="error" ng-show="innerForm.field.$error.required">Too long!</span>
</div>
</div>