2017-05-02 4 views
2

Ich habe Angular Vorlage dynamische Form wie unten gezeigt verwendet.Ich weiß, wie Sie alle Werte des Formulars senden, wenn Sie eine submit Taste drücken. Wir können es als f.value senden. Aber ich muss den textbox Wert auf diese Methode (click)="goToNext(sendUserEnteredTextBoxValueHere)" senden. Wie kann ich das tun?Senden Vorlagenfeld Formularwert

Hinweis: Hier verwende ich Einweg-Datenbindung.

<form novalidate #f="ngForm" (ngSubmit)="onSubmit(f)"> 

<div *ngIf="question?.type=='textfield'"> 
    <ion-label>a. {{question?.prompt}}*</ion-label> 
    <ion-input type="text" placeholder="{{question?.prompt}}" name="{{question?.name}}" ngModel> </ion-input> 
    <button ion-button type="button" (click)="goToNext(sendUserEnteredTextBoxValueHere)"></ion-icon></button> 
    </div> 

    //having so many other dynamic HTML elements 

<button ion-button type="submit" [disabled]="f.invalid">Submit</button> 

Antwort

1

Sie können ngModel mit Namen zuweisen und an die Funktion senden. Aber wenn Sie die gleiche Klasse verwenden, müssen Sie keine Werte aus der Funktion senden, aber sie wird in der Klasse selbst verfügbar sein. Unten finden Sie die Art und Weise

<form novalidate #f="ngForm" (ngSubmit)="onSubmit(f)"> 

    <div *ngIf="question?.type=='textfield'"> 
     <ion-label>a. {{question?.prompt}}*</ion-label> 
     <ion-input type="text" placeholder="{{question?.prompt}}" name="{{question?.name}}" #name="ngModel"> </ion-input> 
     <button ion-button type="button" (click)="goToNext(currentQuestionCode,name)"><ion-icon name="arrow-forward"></ion-icon></button> 
    </div> 

    //having so many other dynamic HTML elements 

    <button ion-button type="submit" [disabled]="f.invalid">Submit</button> 
    </form> 
+0

Hier bin ich nicht '2-Wege-Daten binding'.Because Verwendung Ich habe nicht ein Modell auf' ts' side.It ein dynamisches form.Then ist, wie kann ich damit umgehen ? – Sampath

+0

Sie können eine lokale Vorlagevariable erstellen und ngModel-Wert übergeben und später können Sie eine Namensvariable an Ihre Funktion übergeben. Überprüfen Sie den aktualisierten Code –

+0

Es scheint Ihre Lösung funktioniert. Aber wie kann ich lokale Variablen für dynamische Formularelemente geben? Ich muss Namen wie name1, name2 usw. verwenden. Hoffnung, die keine gute Sache ist. Können wir nicht eine andere Abhilfe für dieses haben. Ich habe viele Formelemente. Danke für Ihr Feedback. – Sampath

Verwandte Themen