2017-04-20 12 views
-2

Ich habe ein Array, das True/False-Werte und etwas Text enthält. Wenn ich eine ngFor für das Array mache, werden die Checkboxen nicht überprüft und der Wert der Eingaben wird nicht gesetzt. Wenn ich nur zeigen die Werte der boolean und Text über {{}}, kann ich die Werte sehen:Checkbox und Eingabewerte werden nicht in ngFor gesetzt?

<tr *ngFor="let milestone of milestones"> 
      {{milestone.IsIncluded}} //I can see true or false 
       <td><input [(ngModel)]="milestone.IsIncluded" name="IsIncluded" type="checkbox"></td> 
       <td>{{milestone.MilestoneTitle}}</td> 
       <td> 
       {{milestone.Name}} //I can see the name 
       <input type="text" name="Name" [(ngModel)]="milestone.Name" class="form-control" /> 
       </td> 
      </tr> 

Alle Eingänge sind leer, nicht den Wert, der von milestone.Name kommt und alle Die Kontrollkästchen sind deaktiviert, obwohl für die ersten beiden Elemente IsIncluded auf true festgelegt ist.

Antwort

1

Ich fand es heraus. Es sieht aus wie in ngFor, ich muss einen eindeutigen Namen für die Eingänge haben, also tat ich das:

<tr *ngFor="let milestone of milestones;let in = index"> 
       <td><input [(ngModel)]="milestone.IsIncluded" name="IsIncluded-{{in}}" type="checkbox"></td> 
       <td>{{milestone.MilestoneTitle}}</td> 
       <td> 
       <input type="text" name="Name-{{in}}" [(ngModel)]="milestone.Name" class="form-control" /> 
       </td> 
      </tr> 
Verwandte Themen