2016-11-27 14 views
3

尝试在Angular 2中的现有表单组内创建一个新的表单组。我将主在formGroup“type”为空的组件之一中形成。我将该formGroup“类型”传递给另一个组件。在该组件中,我想创建一个名为“time”的新formGroup,但它不起作用。我没有在FormGroup类中找到任何用于创建新组的方法。只有控件的方法可以将它们添加到FormGroup中。在另一个组件中创建一个新的表单组,而不是在Angular 2中初始化表单的表单组中

addControl方法有效,但下一个没有。

this.typeForm.addControl("gender", new FormControl('', Validators.required)); 
this.typeForm['time'] = this.fb.group({}); 

的FormBuilder应该创造这样的:

{ 
    "name": "", 
    "type": { 
      "gender": "", 
      "time": { 
        } 
      } 
} 

任何想法,我该怎么办呢?

回答

0

我想你可以尝试做这样的事情:

ngOnInit() { 
    this.form = this.fb.group({ 
      name: [''], 
      type: this.typeOptions() 
     }); 
} 

typeOptions(): FormGroup { 
     return this.someService.getTypes().subscribe(
      res => { 
       this.options = res.body; 
      let obj: any = {}; 

      for (let option of options) { 
       let control: FormControl = new FormControl(option.value || ''); 
       obj[option.title] = control; 
      } 

      return new FormGroup(obj); 
     } 
    ); 
} 
+0

谢谢你送我一个新的想法问题可能是如何实施。最后,我以我使用方法addControl并将新FormGroup作为参数的方式实现它。 – marekdano

+0

欢迎您!) –

相关问题