2016-12-02 57 views
0

使用模型驱动的表单如何为嵌套formGroup设置setValue?如果没有嵌套formGroup我能做到这一点,如下所示:setValue for multiple formGroups

export class MyComponent { 

    constructor(
    private formBuilder: FormBuilder) { 
     this.form = formBuilder.group({ 
     id: [], 
     title: ['', Validators.required], 
     start_date: ['', Validators.required], 
     end_date: ['', Validators.required] 
    }); 
    } 

    ngOnInit() { 
    ... 
    this.form.setValue({ 
     id: this.academicTerm.id, 
     title: this.academicTerm.title, 
     start_date: this.academicTerm.start_date, 
     end_date: this.academicTerm.end_date 
    }); 
    ... 
    } 

} 

这工作正常,但如果我巢开始和结束日期到自己dates formGroup(用于验证...未显示),那么我能不能找到一种方法设置开始和结束日期值。

export class MyComponent { 

    constructor(
    private formBuilder: FormBuilder) { 
     this.form = formBuilder.group({ 
     id: [], 
     title: ['', Validators.required], 
     dates: formBuilder.group({ 
      start_date: ['', Validators.required], 
      end_date: ['', Validators.required] 
     }) 
    }); 
    } 

回答

2

您可以设置日期值如下:

this.form.controls['dates'].setValue({ 
    start_date: '', 
    end_date: '', 
}); 

或整体形式:

this.form.setValue({ 
    id: '', 
    title: '', 
    dates: { 
     start_date: '', 
     end_date: '' 
    } 
}); 

但是,如果你这样做来设置默认值就去做时您正在构建表单而不是使用空值('')。

+0

完美,谢谢 –