Cómo obtener un valor único de FormGroup

81

Soy consciente de que puedo obtener los valores de un formulario usando

JSON.stringify (this.formName.value) sin embargo, quiero obtener un valor único del formulario.

¿Cómo hago para hacer eso?

Esteban Romero
fuente

Respuestas:

128

Puedes obtener un valor como este

this.form.controls['your form control name'].value
RemyaJ
fuente
21
this.form.controls.email.valuetambién funciona sin los corchetes, pero depende de usted qué estilo prefiera
Simon_Weaver
Como dijo @Julia, obtener valor mediante el método "get ()" es mejor que esto.
Kavinda Jayakody
115

Sí tu puedes.

this.formGroup.get('name of you control').value
Julia Passynkova
fuente
8
Esta debería ser la respuesta correcta, ya que accede a través del método en lugar de obtener los controles directamente
Mohan Ram
Por supuesto, este también es el método utilizado en la documentación oficial. angular.io/guide/reactive-forms
Kavinda Jayakody
16

La notación de puntos romperá la verificación de tipo, cambie a notación de corchetes. También puede intentar usar el método get (). También mantiene intacta la compilación de AOT que he leído.

this.form.get('controlName').value // safer
this.form.controlName.value // triggers type checking and breaks AOT
Ben Racicot
fuente
1
Estoy de acuerdo con el .get()método, pero necesito terminar con .valueCreo:this.form.get('controlName').value
rynop
1
Agradezco esta respuesta ya que da el POR QUÉ. Gracias.
Mark Rullo
8

para Angular 6+ y> = RC.6

.html

<form [formGroup]="formGroup">
  <input type="text" formControlName="myName">
</form>

.ts

public formGroup: FormGroup;
this.formGroup.value.myName

también debería funcionar.

Billyjov
fuente
3

Otra opción:

this.form.value['nameOfControl']
hurlman
fuente
2

Este código también funciona:

this.formGroup.controls.nameOfcontrol.value
usuario3059545
fuente
2

Puedes usar getRawValue()

this.formGroup.getRawValue().attribute
osmanraifgunes
fuente
0

Puedes hacerlo de las siguientes formas

this.your_form.getRawValue()['formcontrolname]
this.your_form.value['formcontrolname]
Ahmad Sharif
fuente