2016-09-05 6 views
18

これは、入力フィールドがテーブル内にある私のAngular2アプリケーションです。私のデータはselectタグに表示されていますが、のinputタグにバインドされたデータはinputフィールドに表示されていません。Angular2 ngModel inside ngFor(データは入力にバインドされていません)

<form name="userForm"> 
<table> 
<tr *ngFor="let item of itemList; let in =index"> 
    <td><select><option >{{item.FirstName}}</option></select></td> 
    <td><input type="text" id="lastname" name="lastname" [(ngModel)]="itemList[in].lastname"></td> 
    <td><input type="text" id="middlename" name="middlename" [(ngModel)]="itemList[in].middlename"></td> 
</tr> 
</table> 
</form> 
+1

は、あなたはそれが同じでDOM内の複数の要素になります、あなたの入力タグからIDを削除してくださいでしたあなたがforループの中でそれを実行しているからです。 'item.lastname'と' item.middlename'を 'item [in] .lastname'の代わりに使うのはなぜでしょうか – Savaratkar

+0

それぞれのコンポーネントに' FormsModule'をインポートしておく必要があります。 – Savaratkar

答えて

44

ngForループ内で複数のngModelコントロールを作成する場合は、それぞれが固有のname制御できていることを確認してください:

<form name="userForm"> 
<table> 
<tr *ngFor="let item of itemList; let in = index"> 
    <td><input type="text" name="lastname-{{in}}" [(ngModel)]="item.lastname"></td> 
    <td><input type="text" name="middlename-{{in}}" [(ngModel)]="item.middlename"></td> 
</tr> 
</table> 
</form> 
+2

ありがとう、私のために働いた – Rodney

+2

これは私のために働いた! – mXX

+0

どのように私の.TSファイルからその値にアクセスできますか?ありがとう –

関連する問題