2016-09-05 5 views
18

Это мое приложение Angular2 с полями ввода внутри таблицы. Мои данные отображаются на теге select, но данные, привязанные с использованием ngModel по тегам input, не отображаются в поле input.Angular2 ngМодель внутри 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

При создании нескольких элементов управления ngModel внутри цикла ngFor убедитесь, чтобы дать каждому управлять уникальным 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-файла? Спасибо –

Смежные вопросы