如何从表单组中的禁用表单控件中获取值?

Ole*_*siv 19 forms angular angular-reactive-forms

我尝试使用表单状态对象初始化我的新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),
 })
Run Code Online (Sandbox Code Playgroud)

现在,如果我尝试做:

this.userForm.value //email, firstName, lastName
Run Code Online (Sandbox Code Playgroud)

有人遇到过这个问题吗?有解决方案吗 角度版本:5.2.6

Jot*_*edo 45

这不是问题,是预期的行为.如果您想要包括所有值而不管禁用状态如何,请使用以下命令:

this.userForm.getRawValue()
Run Code Online (Sandbox Code Playgroud)


epe*_*per 8

感谢@jota-toledo为我提供了 80% 的需求。

对于那些正在寻找相同问题的解决方案但对于嵌套表单的人,我可以通过改变我的习惯来解决

this.userForm.get('nestedForm').value
Run Code Online (Sandbox Code Playgroud)

到

this.userForm.getRawValue().nestedForm
Run Code Online (Sandbox Code Playgroud)


Utk*_*rsh 6

如果有人正在寻找解决方案来获取FormGroup中FormArray的禁用FormControl。

尝试这个 - (this.formName.controls['formArrayName'] as FormGroup).getRawValue();