问题
I have this inside a component:
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,...]]
});
And I want to set the value for the email field. I tried this, but no luck:
this.signupForm.patchValue({'email': 'myvalue@asd.com'});
But the value is nested, so whats the sintax in this case? I also tried:
this.signupForm.patchValue({'account.email': 'myvalue@asd.com'});
Also searched here:
https://angular.io/docs/ts/latest/api/forms/index/FormGroup-class.html#!#patchValue-anchor
Thanks
回答1:
Try this:
this.signupForm.patchValue({account:{email: 'myvalue@asd.com'}});
Another solution is:
(<FormGroup>this.signupForm.controls['account']).controls['email'].patchValue('myvalue@asd.com');
Sorry for bad indentation.
来源:https://stackoverflow.com/questions/41872990/angular2-update-formgroup-nested-value