2016-12-14 7 views
1

を変更するためのNGリピート内のフォームの動的な名前はanswerで提案されている。しかし、私の問題は、配列(itemListのは)変更は名前が同じで形成値ときです。私はフォーム名がインデックス値に基づいて更新される必要があります。AngularJs配列

答えて

0

$indexを使用するのではなく、いくつかのユニークなプロパティを使用することができます。アイテムには、アイテムの一意性を定義する独自のidプロパティがあります。だから、ng-init

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

formName = 'item_details' + item.id"がでも私はあなたがユニークな名前を持つ各フォームを作っているの背後に必要されるかと思ってるように見えるだろうか?あなたはネストされたフォームを持つことができ、innerFormは孤立していることが検証されます。その後、有効性確認の方法は、innerFormがすべて有効になると、outFormが有効になります。 innerFormのいずれかが無効の場合、outerFormは無効になります。

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

返信いただきありがとうございます。 'name =" innerForm {{$ index}} "のようなフォーム名を初期化しています。 – Kartik

+0

@ Kartik no、それは '$ index'であってはいけません。アイテムの削除時に同じになるはずです。私が提案したものを試しましたか? –

+0

@Kartikは私の答えを助けましたか? –