So erhalten Sie einen einzelnen Wert von FormGroup

81

Mir ist bewusst, dass ich die Werte eines Formulars mithilfe von erhalten kann

JSON.stringify (this.formName.value) Ich möchte jedoch einen einzelnen Wert aus dem Formular abrufen.

Wie mache ich das?

Stephen Romero
quelle

Antworten:

128

Sie können Wert wie diesen erhalten

this.form.controls['your form control name'].value
RemyaJ
quelle
21
this.form.controls.email.valuefunktioniert auch ohne die Klammern, aber es liegt an Ihnen, welchen Stil Sie bevorzugen
Simon_Weaver
Wie von @Julia gesagt, ist es besser, mit der Methode "get ()" einen Wert zu erhalten.
Kavinda Jayakody
115

Ja, du kannst.

this.formGroup.get('name of you control').value
Julia Passynkova
quelle
8
Dies sollte die richtige Antwort sein, da Sie über eine Methode zugreifen, anstatt direkt Steuerelemente zu erhalten
Mohan Ram
Dies ist natürlich auch die Methode, die in der offiziellen Dokumentation verwendet wird. angle.io/guide/reactive-forms
Kavinda Jayakody
16

Die Punktnotation unterbricht die Typprüfung und wechselt zur Klammernotation. Sie können auch versuchen, die Methode get () zu verwenden. Es hält auch die AOT-Zusammenstellung im Takt, die ich gelesen habe.

this.form.get('controlName').value // safer
this.form.controlName.value // triggers type checking and breaks AOT
Ben Racicot
quelle
1
Ich stimme der .get()Methode zu, muss aber mit .valuemeiner Meinung enden :this.form.get('controlName').value
Rynop
1
Ich schätze diese Antwort, da sie das WARUM gibt. Vielen Dank.
Mark Rullo
8

für Angular 6+ und> = RC.6

.html

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

.ts

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

sollte auch funktionieren.

billyjov
quelle
3

Andere Option:

this.form.value['nameOfControl']
Hurlman
quelle
2

Dieser Code funktioniert auch:

this.formGroup.controls.nameOfcontrol.value
user3059545
quelle
2

Sie können verwenden getRawValue()

this.formGroup.getRawValue().attribute
Osmanraifgunes
quelle
0

Sie können dies auf folgende Weise tun

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