2016-12-02 3 views
0

Mit modellgesteuerten Formularen wie kann ich Value für eine verschachtelte FormGroup setzen? Ohne die verschachtelte formGroup kann ich dies tun, wie folgt:setValue für 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 
    }); 
    ... 
    } 

} 

Dies funktioniert gut, aber wenn ich Nest die Start- und Enddaten in ihre eigenen dates formGroup (zur Validierung ... nicht gezeigt), dann kann ich nicht einen Weg finden, um die Anfangs- und Enddatumswerte festzulegen.

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

Antwort

2

Sie können den Datumswert wie folgt festgelegt:

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

oder die ganze Form:

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

Aber wenn Sie es tun Standardwerte einzustellen tun Sie es einfach, wenn Sie erstellen das Formular, anstatt leere Werte zu verwenden ('').

+0

Perfekt, danke –