2017-01-16 11 views
3

Пожалуйста, посмотрите на Plnkr ниже. Если вы раскомментируете тег html в app.html, все дети будут Тимом.Использование HTML-тега формы с ngFor заставляет ngModel использовать последний результат переменной цикла вместо текущего

<!--<form #form="ngForm">--> 
    <div class="row"> 
    <div class="col-lg-12" *ngFor="let employee of employees"> 
     <div class="col-lg-6"> 
     <label for="employee">Employee</label> 
     <input type="text" class="form-control" id="employee" [(ngModel)]="employee.firstName" name="employee"> 
     </div> 
     <div class="row"> 
     <div class="col-lg-12" *ngFor="let kid of employee.kids" style="border:1px solid #cecece;"> 

      <div class="col-lg-4"> 
      <label for="kid">Kid - {{kid.name}}</label> 
      <input type="text" class="form-control" id="kid" [(ngModel)]="kid.name" name="kid"> 
      </div> 

     </div> 


     </div> 
    </div> 
    </div> 
<!--</form>--> 

https://plnkr.co/edit/AyOVBXAoa8kuE1CQf6XB?p=preview

Я хотел бы использовать эту функцию Angular2 форму, так что это не здавать, чтобы пропустить его и заменить его с некоторыми JavaScripts.

ответ

4

Добавить [ngModelOptions]="{ standalone : true }" к введенному в течение цикла, чтобы сделать их уникальными (чтобы быть более точным, то они не будут добавлены в то же FormGroup например):

<input type="text" class="form-control" id="kid" [(ngModel)]="kid.name" 
[ngModelOptions]="{ standalone : true }" name="kid"> 
+2

вау, спасибо за быстрый ответ:) –

+1

Удобный, конечно, будет использовать его. Up. –