如何获取ngFor中的复选框值?在角2+?

问题描述:

Hy,我需要通过在ngFor中的复选框检查来收集选定的值。以下是代码。如何获取ngFor中的复选框值?在角2+?

<tr *ngFor="let item of items; let index = index;"> 
    <td>{{item.bed}}</td> 
    <td>{{item.size}}</td> 
    <td>{{item.name}}</td> 
    <td> 
     <input type="checkbox" 
      name="domain-{{item.bed}}" 
      [(ngModel)]="items[index].id" 
     > 
    </td> 
    </tr> 
<button (click)="OnSelect()">Select</button> 

在组件中,我试图像这样访问。

component.ts 
items = []; 
ngOnInIt() { 
    this.items = somepromise.then((items) => this.items); 
} 
OnSelect() { 
    console.log(this.items); 
} 

在选择,我看到打印出来,而选中的复选框值项的所有值。有什么想法吗 ?

<td> 
    <input type="checkbox" 
     name="item-{{item.bed}}" 
     #myItem 
     (change)="OnCheckboxSelect(item.id, $event)" 
    > 
</td> 

在组件:

@ViewChildren('myItem') item; 
selectedIds = []; 

    OnCheckboxSelect(id, event) { 
    if (event.target.checked === true) { 
     this.selectedIds.push({id: id, checked: event.target.checked}); 
     console.log('Selected Ids ', this.selectedIds); 
    } 
    if (event.target.checked === false) { 
     this.selectedIds = this.selectedIds.filter((item) => item.id !== id); 
    } 
    } 

我能得到什么,我想用这种方式。

+0

请参阅我的更新回答 – Vega