2016-12-02 8 views
0

モデルドリブンフォームの使用どのようにして、入れ子になったformGroupにsetValueを設定できますか?次のようにネストされたformGroupがなければ、私はこれを行うことができます。複数のformGroupsのsetValue

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

完璧、ありがとう –

関連する問題