Angular响应式表单无法在ngFor模板循环中使用formControlName设置值
创始人
2024-10-30 07:30:22
0

在Angular中,当使用响应式表单时,在ngFor模板循环中使用formControlName设置值可能会导致问题。这是因为ngFor会创建多个实例,这些实例共享相同的formControlName,这会导致冲突。

解决这个问题的一种方法是使用formGroupName。通过使用formGroupName,我们可以创建一个嵌套的FormGroup,并在ngFor循环中为每个实例设置唯一的formGroupName。

下面是一个示例代码,演示了如何解决这个问题:

在组件类中定义表单控件和表单组:

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormControl } 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;

  constructor(private formBuilder: FormBuilder) { }

  ngOnInit() {
    this.myForm = this.formBuilder.group({
      items: this.formBuilder.array([])
    });
  }

  addItem() {
    const item = this.formBuilder.group({
      name: '',
      value: ''
    });

    this.items.push(item);
  }

  get items() {
    return this.myForm.get('items') as FormArray;
  }
}

在模板中使用formGroupName和formControlName设置值:

在上面的示例中,我们创建了一个items数组,每个数组元素都是一个嵌套的FormGroup。在ngFor循环中,我们使用[i]来设置每个实例的唯一formGroupName。

这样,我们就可以在ngFor循环中正确地使用formControlName设置值,而不会导致冲突。

相关内容

热门资讯

六分钟了解!阿当比鸡有辅助吗(... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
6分钟透视!推荐一下胡乐辅助脚... 推荐一下胡乐辅助脚本的教程 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大...
第十分钟讲究!福建兄弟水挂(辅... 您好:这款福建兄弟水挂游戏是可以开挂的,确实是有挂的,很多玩家在这款福建兄弟水挂游戏中打牌都会发现很...
第5分钟讲解!广西友乐免费辅助... 您好:广西友乐免费辅助这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌...
六分钟明白!南宁老友麻将免费辅... 六分钟明白!南宁老友麻将免费辅助器(辅助挂)一贯有挂(存在挂教程开挂辅助下载);无需打开直接搜索薇:...
五分钟透视!禅游指尖四川修改器... 五分钟透视!禅游指尖四川修改器(辅助挂)一直真的是有挂(教你攻略开挂辅助软件) 【无需打开直接搜索加...
两分钟详情!乐胡陇南摆叫辅助器... 两分钟详情!乐胡陇南摆叫辅助器(辅助挂)一直真的是有挂(技巧教程开挂辅助神器) 了解更多开挂安装加(...
第九分钟讲究!友八鸽辅助(辅助... 第九分钟讲究!友八鸽辅助(辅助挂)其实是有挂的(新版2026教程开挂辅助安装)>>您好:软件加薇13...
六分钟讲究!微乐陕西三代自建房... 微乐陕西三代自建房怎么提高胜率开挂教程视频分享装挂详细步骤在当今的网络游戏中,微乐陕西三代自建房怎么...
第五分钟开挂!多乐找刺激捕鱼辅... 第五分钟开挂!多乐找刺激捕鱼辅助(辅助挂)原来是有挂(科技教程开挂辅助脚本)>>您好:软件加1367...