首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何以angular 9反应形式获取foreach中每个复选框的值

在Angular 9中,可以使用反应式表单来获取foreach中每个复选框的值。以下是一个示例代码:

首先,在组件的HTML模板中,使用ngFor指令来遍历复选框列表,并使用formControlName绑定每个复选框的值到一个FormControl对象:

代码语言:txt
复制
<form [formGroup]="myForm">
  <div *ngFor="let checkbox of checkboxes">
    <label>
      <input type="checkbox" [formControlName]="checkbox.value">
      {{ checkbox.label }}
    </label>
  </div>
</form>

接下来,在组件的TypeScript代码中,创建一个FormGroup对象,并初始化复选框的FormControl对象:

代码语言:txt
复制
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';

@Component({
  selector: 'app-my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.css']
})
export class MyComponentComponent implements OnInit {
  myForm: FormGroup;
  checkboxes = [
    { label: 'Checkbox 1', value: 'checkbox1' },
    { label: 'Checkbox 2', value: 'checkbox2' },
    { label: 'Checkbox 3', value: 'checkbox3' }
  ];

  constructor(private formBuilder: FormBuilder) { }

  ngOnInit() {
    this.myForm = this.formBuilder.group({});
    this.checkboxes.forEach(checkbox => {
      this.myForm.addControl(checkbox.value, this.formBuilder.control(false));
    });
  }
}

在上述代码中,通过formBuilder创建了一个空的FormGroup对象,并使用forEach循环遍历复选框列表,为每个复选框创建一个FormControl对象,并将其添加到FormGroup中。

最后,您可以在组件中访问每个复选框的值。例如,您可以在提交表单时获取选中的复选框值:

代码语言:txt
复制
onSubmit() {
  const selectedCheckboxes = Object.keys(this.myForm.value)
    .filter(key => this.myForm.value[key]);
  console.log(selectedCheckboxes);
}

在上述代码中,通过Object.keys(this.myForm.value)获取FormGroup中所有FormControl的键,然后使用filter方法筛选出选中的复选框的键,并将其打印到控制台。

这是一个基本的示例,您可以根据实际需求进行修改和扩展。关于Angular的更多信息和示例,请参考腾讯云的Angular产品文档:Angular产品文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券