我用FormBuilder创建了以下form个Angular :

constructor(private fb: FormBuilder) {
  this.myForm = fb.group({
      'name': ['', [Validators.required],
      'surname': ['', [Validators.required],
      'email': ['', [validateEmail]],
      'address': fb.group({
          'street': [''],
          'housenumber': [''],
          'postcode': ['']
      }, { validator: fullAddressValidator })
  });
}

是否存在一种通过编程方式将新字段(如FormControl或新FormGroup)追加到myForm的方法?

我的意思是,如果我想按需或在某些条件下添加新字段,如何将项目添加到constructor中第一次创建的相同表单中?

推荐答案

根据documentation,你可以使用FormGroup类的addControl方法

因此,您可以执行以下操作:

this.myForm.addControl('newcontrol',[]);

Angular相关问答推荐

HttpInterceptorFn在Angular 17中被忽略

如何重新显示ngbAlert(Bootstrap widgest for Angular)消息后再次驳回它

Angular 9表单构建器 - 日期验证器问题

Angular 测试被认为是成功的,即使有错误

如何以Angular 改变环境

如何以Angular 显示动态视图模型

Rxjs Observable:仅为第一个订阅者获取 HTTP 数据,为其余订阅者获取缓存数据

Angular 无法从后端获取数据到前端

将数组传递给 URLSearchParams,同时使用 http 调用获取请求

如何从表单组中禁用的表单控件中获取值?

ng test 和 ng e2e 之间的真正区别是什么

如何停止在 ngOnInit() 之前调用的 ngOnChanges

未绑定断点 - VS Code | Chrome | Angular

如何在 Angular 6 中使用 mouseover 和 mouseout

Angular 2 - 组件内的 formControlName

Angular 2 - 全局 CSS 文件

Angular7 中的 CORS 策略已阻止源http://localhost:4200

如何在 angular2 中的 div 的 contenteditable 上使用 [(ngModel)]?

RxJS - 发生错误时观察到的不会完成

将 [NgStyle] 与条件组合(if..else)