Подтвердить что ты не робот

Динамическое имя AngularJs для формы внутри ng-repeat

Как мне назвать форму внутри ng-repeat с динамическим именем?

<div ng-repeat="item in itemList">
 <form name="item_details" ng-class="validateForm(item_details)">
   //few form elements
 </form>
</div>

Я хочу назвать каждую форму динамически. Например, добавьте $index к имени формы. Как мне это достичь? Я пробовал ng-init на ng-repeat, но не работал.

4b9b3361

Ответ 1

Вы можете просто сделать:

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

Если это просто применить класс на основе действительности формы, вы можете применить стилирование к автоматически добавленным классам, например: ng-valid:

.ng-valid {
   background-color: green;
}

Ответ 2

Вы можете получить доступ к экземпляру формы с помощью динамического имени с помощью скобок:

<div ng-repeat="item in itemList">
  <form name="item_details{{$index}}" ng-class="validateForm(this['item_details' + $index])">
    //few form elements
  </form>
</div>