AngularJs ng-repeat中表单的动态名称

时间:2014-12-16 20:20:15

标签: angularjs

如何使用动态名称在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但是没有用。

2 个答案:

答案 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>