2014-12-16 7 views
22

Dinamik bir adla ng-repeat içinde nasıl bir form adı verebilirim?AngularJs ng-repeat içinde bir form için dinamik adı

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

Ben dinamik olarak her formu isim istiyorum. Örneğin, $ dizinini formun adına ekleyin. Bunu nasıl başarabilirim? Ng-yinelemeyi denedim ama işe yaramadı.

+2

neden aşağı oyu ?? –

+3

downvotes herhangi bir anlam ifade etmiyor - bu meşru bir soru – Olivvv

+3

olduğunu kabul ediyorum. – hendrix

cevap

17

Sadece yapabilirsiniz:

<form name="item_details{{$index}}" ng-class="validateForm('item_details'+$index)"> 

EDIT:

Sen şöyle yanı ng-init kullanabilirsiniz:

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

o dayalı bir sınıfı uygulamak için sadece buysa formun geçerliliği, daha sonra automatically added classes için stil uygulayabilirsiniz: ng-valid:

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

Bu işe yaramadı. '

validateForm yöntemi, form değişken girişi için tanımsız alındı. –

+0

Benim noktayı kaçırdın. Yapmanız gereken tek şey CSS –

+0

'u karmaşık bir doğrulamaya ve css değişikliğine göre şekillendirmemeniz durumunda 'validateFrom' öğesine ihtiyacınız yoktur. Gönderme düğmesini etkinleştirmek için birden çok form alanı değeri doğrulanır. –

0

Sen köşeli parantez açıklaması kullanarak dinamik adıyla formun örneğini erişebilir:

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