2016-12-29 3 views
0

У меня есть динамический список checkbox, который построен с использованием *ngFor. Модель обновляется просто отлично, когда я вручную проверю флажки, но если у модели есть установленный флажок, окно не будет проверяться при загрузке.Флажок не применяется Проверка нагрузки при использовании * ngFor в Angular 2

<form action="demo_form.asp" method="get"> 
    <div *ngFor="let d of data; let in=index; trackBy:trackByIndex"> 
    <input type="checkbox" 
      name="value" 
      [(ngModel)]="data[in].value" 
      [(checked)]="data[in].value" 
      (change)="checkChanged($event)"/> 
    {{d.text}} 
    </div>  
</form> 

Я узнал, что вам нужно нам trackBy при использовании примитивов в пределах ngFor так вот мой trackByIndex:

public trackByIndex(index: number, data: TextValuePair): any { 
    return index; 
} 

Вот данные:

public data = [{ text: "Human", value: true }, { text: "Dog", value: false }] 

Мне нужна флажки, которые необходимо проверить при загрузке, если объект в списке имеет value, установленный в «true»

ответ

0

Обнаружили проблему. Он запутывается внутри <form>. Удалите <form>, и вы можете упростить этот код.

<div *ngFor="let d of data"> 
    <input type="checkbox" 
      name="data" 
      value="{{d.text}}" 
      [(ngModel)]="d.value" 
      (change)="checkChanged($event)"/> 
    {{d.text}} 
    </div> 

Он должен работать