2017-01-26 2 views
4

Ich habe dies in einer Komponente:Angular2 Update FormGroup verschachtelter Wert?

private formBuilder: FormBuilder 

... 

signupForm: FormGroup; 

... 

this.signupForm = this.formBuilder.group({ 
    'name':    [null, Validators.required], 
    'account':   this.formBuilder.group({ 
    'email':   [null, [Validators.required, ...]], 
    'confirm_email': [null, Validators.required], 
    }, {validator: ValidationService.emailMatcher}), 
    'password':   [null, [Validators.required,...]] 
}); 

Und ich mag den Wert für das E-Mail-Feld setzen. Ich habe das versucht, aber kein Glück:

this.signupForm.patchValue({'email': '[email protected]'}); 

Aber der Wert ist verschachtelt, also was ist das Sintax in diesem Fall? Ich habe auch versucht:

this.signupForm.patchValue({'account.email': '[email protected]'}); 

Auch hier gesucht:

https://angular.io/docs/ts/latest/api/forms/index/FormGroup-class.html#!#patchValue-anchor

Dank

Antwort

12

Versuchen Sie folgendes:

this.signupForm.patchValue({account:{email: '[email protected]'}});

Eine andere Lösung ist:

(<FormGroup>this.signupForm.controls['account']).controls['email'].patchValue('[email protected]');

Sorry für schlechte Einrückung.

+0

Das war's! Danke vielmals! Ich weiß nicht, warum ich das mit der Lösung nicht begriffen habe ... jetzt scheint es offensichtlich! – Ismaestro

+0

Meine Zeit viel gespeichert. – roshini

+0

Wie Sie Variable anstelle von Konto in Ihrer obigen Lösung verwenden. –

Verwandte Themen