Jak uzyskać pojedynczą wartość z FormGroup

86

Wiem, że mogę uzyskać wartości formularza za pomocą

JSON.stringify (this.formName.value) jednak chcę uzyskać pojedynczą wartość z formularza.

Jak mam to zrobić?

Stephen Romero
źródło

Odpowiedzi:

135

Możesz uzyskać taką wartość

this.form.controls['your form control name'].value
RemyaJ
źródło
23
this.form.controls.email.valuedziała również bez nawiasów, ale od Ciebie zależy, jaki styl wolisz
Simon_Weaver
Jak powiedział @Julia, uzyskanie wartości metodą „get ()” jest lepsze niż to.
Kavinda Jayakody
120

Tak, możesz.

this.formGroup.get('name of you control').value
Julia Passynkova
źródło
8
To powinna być właściwa odpowiedź, ponieważ uzyskujesz dostęp za pomocą metody zamiast bezpośredniego uzyskiwania kontroli
Mohan Ram
Oczywiście jest to metoda stosowana również w oficjalnej dokumentacji. angular.io/guide/reactive-forms
Kavinda Jayakody
20

Notacja z kropką przerywa sprawdzanie typu, przełącza się na notację nawiasów. Możesz także spróbować użyć metody get (). Utrzymuje również kompilację AOT, którą przeczytałem.

this.form.get('controlName').value // safer
this.form.controlName.value // triggers type checking and breaks AOT
TR3B
źródło
1
Zgadzam się z .get()metodą, ale .valuemyślę , że muszę skończyć :this.form.get('controlName').value
rynop
1
Doceniam tę odpowiedź, ponieważ podaje DLACZEGO. Dziękuję Ci.
Mark Rullo
8

dla Angular 6+ i> = RC.6

.html

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

.ts

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

powinien również działać.

billyjov
źródło
3

Inna opcja:

this.form.value['nameOfControl']
hurlman
źródło
2

Ten kod działa również:

this.formGroup.controls.nameOfcontrol.value
user3059545
źródło
2

Możesz użyć getRawValue()

this.formGroup.getRawValue().attribute
osmanraifgunes
źródło
0

Możesz to zrobić na następujące sposoby

this.your_form.getRawValue()['formcontrolname]
this.your_form.value['formcontrolname]
Ahmad Sharif
źródło