2017-02-27 68 views
1

我有一個對象陣列爲什麼複選框在表單內不起作用?

pets = [{key: 'dog', isChecked: true}, {key: 'hamster', isChecked: false}, {key: 'cat', isChecked: false}]; 

和類似的複選框

<div *ngFor='let pet of pets'> 
    <input type='checkbox' 
    name='pets' 
    value='{{pet}}' 
    [(ngModel)]='pet.isChecked' 
    (change)='check()' 
    /> 
    {{pet.key}} - {{pet.isChecked}} 
</div> 

但只要我開始把它形式

<form> 
    <div *ngFor='let pet of pets'> 
     <input type='checkbox' 
     name='pets' 
     value='{{pet}}' 
     [(ngModel)]='pet.isChecked' 
     (change)='check()' 
     /> 
     {{pet.key}} - {{pet.isChecked}} 
    </div> 
</form> 

它停止正確顯示內顯示它。

我該如何使這個表單工作?

Plunkr link

Plunkr link with a form

+1

你開始面對的問題,認罪e創建一個plnkr或jsfiddle以便更好地理解 – Viplock

+0

@Viplock更新了問題。 –

+3

'input.name'屬性必須是唯一的https://plnkr.co/edit/6qgA1wnJOWgZUP0BGBmb?p=preview – yurzui

回答

1

HTML:

<form> 
     <div *ngFor='let pet of pets'> 
      <input type='checkbox' 
       name='pets' 
       id="pets{{getRandom()}}" 
       [ngModel]="pet.isChecked" 
       value='{{pet}}' 
       (click)="$event.stopPropagation(); check();"/> 
      {{pet.key}} - {{pet.isChecked}} 
     </div> 
    </form> 

TS:

function getRandom() { 
    return Math.random() * 1000; 
} 
相關問題