首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问嵌套FormBuilder Angular6

访问嵌套FormBuilder Angular6
EN

Stack Overflow用户
提问于 2019-12-16 03:50:33
回答 4查看 69关注 0票数 2

我有一个简单的反应形式

代码语言:javascript
复制
this.orderForm = this._formBuilder.group({
    metadataFormGroup: this._formBuilder.group({
      data1: ['', [Validators.pattern(this.nserRegex)]],
      data2: ['', [Validators.pattern(this.crqRegex)]]
    }),

    infoFormGroup: this._formBuilder.group({
      data3: ['', [Validators.pattern(this.blcRegex)]],
      data4: new FormControl([])
    })
  });

我正在尝试访问

代码语言:javascript
复制
this.orderForm['metadataFormGroup'].controls['data1'].setValue('11111111')

但是它给了erro那个ERROR TypeError: "this.orderForm.metadataFormGroup is undefined"

请帮帮忙

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-12-16 05:45:00

试着用get方法这样做

代码语言:javascript
复制
this.orderForm.get('metadataFormGroup').get('data1').setValue('11111111');

使用get属性可以简化上面的行。

代码语言:javascript
复制
get  metadataFormGroup(){
  return this.orderForm.get('metadataFormGroup');
}

然后,您可以像这样设置值

代码语言:javascript
复制
this.metadataFormGroup.get('data1').setValue('11111111');
票数 0
EN

Stack Overflow用户

发布于 2019-12-16 03:59:55

您需要通过controls所以this.orderForm.controls['metadataFormGroup']...访问嵌套组。然而,一个更清洁的解决方案(我认为)是:

代码语言:javascript
复制
this.orderForm.get('metadataFormGroup').get('data1').setValue('...');
票数 1
EN

Stack Overflow用户

发布于 2019-12-16 04:03:34

可以通过以下方式设置metadataFormGroup的值

代码语言:javascript
复制
this.orderForm.setValue({
  ...this.orderForm.value,
  metadataFormGroup: {
    data1,
    data2
  }
});

您可以通过以下方法获得metadataFormGroup的值

代码语言:javascript
复制
this.orderForm.value.metadataFormGroup
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59350339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档