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?

Antworten:


128

Sie können Wert wie diesen erhalten

this.form.controls['your form control name'].value

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


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

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.



2

Dieser Code funktioniert auch:

this.formGroup.controls.nameOfcontrol.value


0

Sie können dies auf folgende Weise tun

this.your_form.getRawValue()['formcontrolname]
this.your_form.value['formcontrolname]
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.