我有一个带有ng-repeat生成的输入字段的表单。字段名称是从模型动态设置的。我无法通过验证工作。 这是在ng-repeat中重复的输入字段:
<input class="form-control input" type="number" id="item.id" name="item.name" ng-change="ctrl.updateSub(item)" ng-model="item.qty" max="item.maxqty" min="0">
我正在尝试验证最大值,也是动态设置的。
我在任何地方都找不到的是如何在ng-show类中设置名称。
<div class="col-sm-2 error" ng-show="form.{{item.name}}.$invalid">
<small class="error" ng-show="form.{{item.name}}.$error.max">
You exceeded the maximum allowed
</small>
</div>
我该如何处理{{item.name}}
位?
提前感谢任何帮助或指示。
Angular 1.3.12
答案 0 :(得分:0)
首先form
是保留关键字,您不能将其用作表单名称。
很快就会出现问题,因此无法为表单输入生成动态名称。
您可以在ng-form
的帮助下实现您想要的效果
看看这个例子:
<form name="yourForm" >
<div ng-repeat="field in fields" ng-form="myInnerForm">
<input type="text" name="dynamic_input" ng-model="field.name"/>
<div ng-show="myInnerForm.dynamic_input.$dirty && myInnerForm.dynamic_input.$invalid">
The field is required.
</div>
</div>
</form>