首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular6中的嵌套表单组

Angular6中的嵌套表单组
EN

Stack Overflow用户
提问于 2019-01-19 23:23:06
回答 2查看 93关注 0票数 1

我正在尝试在Angular6中创建嵌套表单组。

代码语言:javascript
复制
serviceItemForm: FormGroup;
apiForm : FormGroup;

this.serviceItemForm = this.fb.group({
  'name': new FormControl('', Validators.required),
  'description': new FormControl('', Validators.required),
  'categoryIds': new FormControl([], Validators.required),
  'tags': [],
  'status': '',
  'orderFormType': new FormControl([], Validators.required),
  'orderFormKey': new FormControl([], Validators.required),
  'workflow': [],
  'orderFormAction': new FormControl('', Validators.required),
  'customUI': new FormControl(''),
  'api': this.fb.group({
    'apiurl': new FormControl(''),
    'apimethod': new FormControl(''),
    'headers': this.fb.array([]),
    'payload': '',
  }),
  'userGroup': []
});

this.apiForm = this.serviceItemForm.get('api');

在这里,this.apiForm给出的错误与VSCode中的Type 'AbstractControl' is not assignable to type 'FormGroup'. Property 'controls' is missing in type 'AbstractControl'.类似。

请帮助我如何在angular-6中使用嵌套的form-group

EN

回答 2

Stack Overflow用户

发布于 2019-01-20 03:18:13

您可以尝试以下代码:

代码语言:javascript
复制
serviceItemForm: FormGroup;
apiForm : FormGroup;

this.apiForm = this.fb.group({
    'apiurl': new FormControl(''),
    'apimethod': new FormControl(''),
    'headers': this.fb.array([]),
    'payload': '',
  });

this.serviceItemForm = this.fb.group({
  'name': new FormControl('', Validators.required),
  'description': new FormControl('', Validators.required),
  'categoryIds': new FormControl([], Validators.required),
  'tags': [],
  'status': '',
  'orderFormType': new FormControl([], Validators.required),
  'orderFormKey': new FormControl([], Validators.required),
  'workflow': [],
  'orderFormAction': new FormControl('', Validators.required),
  'customUI': new FormControl(''),
  'api': this.apiForm,
  'userGroup': []
});
票数 1
EN

Stack Overflow用户

发布于 2019-01-19 23:26:38

如果你检查任何嵌套(或父) FormGroup的类型,它将返回always object。所以你能做的就是将你的object类型的变量转换成这样-

代码语言:javascript
复制
apiForm : Object;
...
this.apiForm = this.serviceItemForm.get('api');

否则,您可以在为变量赋值时进行类型转换,如下所示-

代码语言:javascript
复制
apiForm : FormGroup;
this.apiForm = (<FormGroup>this.serviceItemForm.get['api']);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54268563

复制
相关文章

相似问题

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