如何使用动态名称在ng-repeat中命名表单?
<div ng-repeat="item in itemList">
<form name="item_details" ng-class="validateForm(item_details)">
//few form elements
</form>
</div>
我想动态命名每个表单。例如,将$ index添加到表单的名称。我该如何实现?我在ng-repeat上尝试过ng-init但是没有用。
答案 0 :(得分:18)
你可以这样做:
<form name="item_details{{$index}}" ng-class="validateForm('item_details'+$index)">
修改强>:
您也可以使用ng-init
,如下所示:
<div ng-repeat="item in itemList" ng-init="formName = 'item_details' + $index">
<form name="{{formName}}" ng-class="validateForm(formName)">
//few form elements
</form>
</div>
如果仅根据表单的有效性应用类,则可以将样式应用于automatically added classes,例如:ng-valid
:
.ng-valid {
background-color: green;
}
答案 1 :(得分:1)
您可以使用括号表示法通过动态名称访问表单实例:
<div ng-repeat="item in itemList">
<form name="item_details{{$index}}" ng-class="validateForm(this['item_details' + $index])">
//few form elements
</form>
</div>