2016-09-05 17 views
18

Đây là ứng dụng Angular2 của tôi có các trường nhập trong bảng. Dữ liệu của tôi hiển thị trên thẻ select nhưng dữ liệu được liên kết bằng cách sử dụng ngModel trên thẻ input không được hiển thị trong trường input.Angular2 ngModel bên trong ngFor (Dữ liệu không ràng buộc trên đầu vào)

<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

Ông có thể loại bỏ id từ thẻ đầu vào của bạn, nó sẽ gây ra nhiều yếu tố trong DOM với cùng một id vì bạn đang chạy nó bên trong vòng lặp for. Và tại sao không sử dụng 'item.lastname' và' item.middlename' thay cho 'item [in] .lastname' – Savaratkar

+0

Tôi chắc chắn bạn phải nhập' FormsModule' trong thành phần tương ứng của bạn. – Savaratkar

Trả lời

44

Khi tạo nhiều điều khiển ngModel bên ngFor loop hãy chắc chắn để cung cấp cho mỗi điều khiển độc đáo 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

Cảm ơn, đã làm việc cho tôi – Rodney

+2

Điều này phù hợp với tôi! – mXX

+0

Làm cách nào để truy cập giá trị của tệp từ tệp .TS của tôi? Cảm ơn –

Các vấn đề liên quan