angular - 如何在 ngFor 中获取复选框值?在 Angular 2+ 中?

标签 angular checkbox angular-ngmodel ngfor

嘿,我需要通过 ngFor 中的复选框检查来收集选定的值。下面是代码。

 <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);
    }
  }

我能够通过这种方式得到我想要的东西。

关于angular - 如何在 ngFor 中获取复选框值?在 Angular 2+ 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45868484/

相关文章:

javascript - AngularJS 的 ng-model 不绑定(bind)下拉菜单中的选定值(ng-options),也无法重新加载页面

javascript - 如何从angularjs中的可编辑div中获取内容

javascript - 这段代码可以优化吗?

c# - 如何在 C# 中循环遍历多个复选框

php - 在codeigniter中获取复选框的多个值

AngularJS 复选框过滤器

angular - 如何确定 Angular 中的上一页 URL?

angular - TS 编译器为 node_modules\@angular\platform-b​​rowser\src\browser\directory 中的 transfer_state.d.ts 文件抛出错误

angular - ngx-translate:如何 'translate' 一个 html 属性?

javascript - Angular 获取图像数据并再次将其附加到 FormData