我有一个Angular Reactive表单。我订阅了它的值更改,并将对父组件发出更改。某些控件可能会被用户禁用。问题是,在发出表单valueChanges时,缺少来自禁用控件的值。我已经设置了基本example。
选中该复选框并禁用电子邮件输入时,不会记录任何表单控件值。但我想获得所有表格价值。
答案 0 :(得分:6)
使用FormGroup的getRawValue()来包含控制值,而不管启用/禁用状态。
More information in the API documentation
this.myForm.valueChanges.subscribe(() => {
this.formValues = JSON.stringify(this.myForm.getRawValue());
});
答案 1 :(得分:0)
忽略禁用输入的值(尝试提交带有禁用输入的表单:它不会被发布)。
您可以将其更改为“只读”
<input formControlName="email" [readonly]="cb.checked">
<input #cb type="checkbox" formControlName="toggleEmail">