首页 文章

在另一个组件中的表单组内部创建一个新的表单组,而不是在Angular 2中初始化表单的组件中

提问于
浏览
3

尝试在Angular 2中的现有表单组内创建一个新表单组 . 我使用空formGroup“type”在其中一个组件中定义主表单 . 我将formGroup“type”传递给另一个组件 . 在该组件中,我想创建一个名为“time”的新formGroup,但它不起作用 . 我没有在FormGroup类中找到任何创建新组的方法 . 只有控件的方法可以将它们添加到FormGroup .

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

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

FormBuilder应该创建类似于:

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

不知道怎么能这样做?

1 回答

  • 1

    我想你可以尝试这样做:

    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);
            }
        );
     }
    

相关问题