我尝试使用表单状态对象初始化我的新FormControl,然后我注意到这个控件不会影响我的表单验证,它也会从FormGroup值中消失。
this.userForm = new FormGroup({
email: new FormControl('', Validators.required),
firstName: new FormControl('',Validators.required),
lastName: new FormControl('',Validators.required),
role: new FormControl({value: 'MyValues', disabled: true},Validators.required),
})
现在,如果我尝试这样做:
this.userForm.value //email, firstName, lastName
有人遇到过此问题吗?有解决方案吗 角度版本:5.2.6
答案 0 :(得分:25)
这不是问题,是预期的行为。如果您想要包括所有值而不管禁用状态如何,请使用以下命令:
this.userForm.getRawValue()
答案 1 :(得分:2)
@jota-toledo谢谢您为我提供了80%的所需资源。
对于那些正在寻找相同问题的解决方案但对于嵌套表格的人,我可以通过更改常规方法来解决
this.userForm.get('nestedForm').value
到
this.userForm.getRawValue().nestedForm
答案 2 :(得分:2)
如果有人正在寻找解决方案以在 FormGroup 中获得 FormArray 的已禁用 FormControl 。
尝试一下-
(this.formName.controls['formArrayName'] as FormGroup).getRawValue();
答案 3 :(得分:0)
在我的情况下,我仅需要1个禁用输入的值,因此,在那种情况下,我已经更改了单个输入并在其中添加了readonly
属性,并在this.userForm.value
中获得了值
HTML:
<input formControlName="name" [readonly]="anyBoolean">