You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mat-form-field结合FormArray与formGroupName时显示异常求助

问题解决方案:FormArray与formGroupName配合时mat-form-field样式不显示问题

问题核心是新增的控件类型不匹配:初始的details FormArray中存储的是包含label和description的FormGroup,但点击添加按钮时,你推入的是单个FormControl(''),导致formGroupName="i"无法正确绑定到合法的FormGroup,进而让mat-form-field无法识别控件状态,默认样式不生效。

修改后的TS代码

formMain = this.fb.group({
    details: this.fb.array([
      new FormGroup({
        label: new FormControl(''),
        description: new FormControl(''),
      }),
    ]),
  });

  get detailsFormArray() {
    return this.formMain.controls.details as FormArray;
  }

  addDetails() {
    // 替换为与初始结构一致的FormGroup
    this.detailsFormArray.push(
      this.fb.group({
        label: new FormControl(''),
        description: new FormControl(''),
      })
    );
  }

修改说明

将addDetails方法中推入的this.fb.control('')替换为和初始元素结构完全一致的FormGroup,确保每个数组元素都是包含label和description的表单组。这样formGroupName="i"能正确关联到对应的FormGroup,mat-form-field就能正常渲染默认的填充样式,无需点击输入框即可显示预期效果。

内容的提问来源于stack exchange,提问作者Bruno Belhoste

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 14:58:17