Динамическое имя 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, но не работал.
Ответы
Ответ 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>