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设置值,而不会导致冲突。

相关内容

热门资讯

透视软件“闲逸游戏修改器”开挂... 【亲,闲逸游戏修改器 这款游戏可以开挂的,确实是有挂的,很多玩家在这款闲逸游戏修改器中打牌都会发现很...
玩家必看科普“闲逸碰胡辅助”开... 玩家必看科普“闲逸碰胡辅助”开挂(透视)辅助软件微扑克教程(有挂教程);打开点击测试直接进入微信(1...
玩家交流“福州十八扑外卦视频”... 玩家交流“福州十八扑外卦视频”开挂(透视)辅助下载软件教程(真的有挂);无需打开直接搜索打开薇:13...
分享一款“微乐小程序自建房插件... 您好:微乐小程序自建房插件怎么安装这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现...
透视美元局“财神十三张安装工具... >>您好:财神十三张安装工具确实是有挂的,很多玩家在这款财神十三张安装工具游戏中打牌都会发现很多用户...
今日公布“来来拼十辅助免费辅助... >>您好:来来拼十辅助免费辅助确实是有挂的,很多玩家在这款来来拼十辅助免费辅助游戏中打牌都会发现很多...
玩家实测“中至南昌辅助工具”开... 玩家实测“中至南昌辅助工具”开挂(透视)辅助安装系统教程(有挂实锤)《详细加薇136704302咨询...
实操分享“哈局十三张元华辅助”... 哈局十三张元华辅助是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我...
玩家必备攻略“朱雀吴江三缺一辅... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
技巧知识分享“小程序跑得快的技... 技巧知识分享“小程序跑得快的技巧”开挂(透视)辅助神器AI教程(有挂分析)您好:小程序跑得快的技巧这...