2017-06-28 6 views
1

Rückkehr Ich verwende eine FormFormcontrol leeren Wert in Angular 2

<form [formGroup]="form"> 
    <input type="text" value={{userDetails.first_name}} formControlName = "firstName"> 
    <button type="submit" data-action="save" (click)="onSubmit(form.value)"> 
</form> 

Hier userDetails.first_name Wert Tom ist. Es ist auf der Benutzeroberfläche innerhalb des Textfelds sichtbar. aber wenn ich Formular einsenden form.firstName gibt mir leeren Wert.

Antwort

0

Um den Wert zu erhalten, sollten Sie form.value.firstName nicht form.firstName überprüfen.

Um eine bessere Vorstellung davon zu bekommen, wie die Form strukturiert ist, machen Sie eine console.log(this.form) auf Formular senden.

+0

Ich habe console.log getan; Gibt immer noch einen leeren Wert zurück – MOHIT

+0

Nun, wenn 'console.log (this.form)' 'einen leeren Wert zurückgibt, ist wahrscheinlich etwas anderes nicht in Ordnung. Können Sie Ihren Code auch mit der Komponente aktualisieren, nicht nur mit der Vorlage? – crash

+0

Hier ist meine ** Formularinitialisierung ** '' this.form = new FormGroup ({ Vorname: new FormControl ('', Validators.compose ([Validators.required]))}); '' & hier ist mein * * onSubmit method ** '' onSubmit = function (Benutzer) { console.log (Benutzer); '' – MOHIT

0

Declare Form Gruppe:

private userForm: FormGroup; 

initialisieren Benutzerformular wie folgt aus:

userForm = form.group({ 
      firstName: [firstName, [Validators.required]] 
     }); 

in HTML wie dieses Erklären Sie Ihre Form:

<form class="example-form " [formGroup]="userForm" 
        (ngSubmit)="onSubmit(userForm)"> 
    <input type="text" value={{userDetails.firstName}} formControlName = 
     "firstName"> 
    <button type="submit" data-action="save"/> 
</form> 

Machen Sie Ihre onSubmit() -Methode wie dies:

onSubmit({formValue, valid}: { formValue: UserDetails, valid: boolean }) { 
    const firstName= value.firstName; 
} 
0

html

<form [formGroup]="form"> 
    <input type="text" formControlName="firstName"> 
    <button type="submit" data-action="save" (click)="onSubmit(form.value)"> 
</form> 

Komponente

können Sie Wert gesetzt wie die

this.form.patchValue({firstName:this.userDetails.first_name}); 

stellen Sie sicher Instanz Form Gruppe in die Komponente

0

Leider schaffen für die späte Antwort .Answer von @Shailesh vorgeschlagen arbeitete für mich, ich flickte Formularwerte nach dem Aufruf einer Methode im Dienst. Danke Jungs für Ihre nützliche Zeit

Verwandte Themen