2017-03-17 1 views
0

Ich habe ein Problem beim Erstellen dynamischer Benutzereingabefelder. Immer wenn ich ein neues Feld erzeuge, verschwindet der gesamte Inhalt innerhalb des Feldes. Ich werde einen Screenshot zur Verfügung stellen, um das Problem zu veranschaulichen.wie dynamische Benutzereingabe generiert werden, ohne Felder zu löschen (siehe GIF)

http://imgur.com/a/Xzgm6

Relevante Code:

HTML:

<ion-item *ngFor="let field of fields"> 
    <ion-label fixed>Destination </ion-label> 
    <ion-input type="text" [(ngModel)]="field.name" name="name"></ion-input> 
    </ion-item> 
    <button ion-button color="light" icon-right (click)="addDestination()" > 
     Add Destination 
     <ion-icon name="add" ></ion-icon> 
    </button> 

Typoskript:

export class HomePage { 
    fields: any; 
    public destination1; 
    public destination2; 
    public destinations = []; 

    constructor(public navCtrl: NavController) { 
    this.fields = []; 
    } 

    addDestination(){ 
    this.fields.push({name: ''}); 
    } 
} 

Irgendwelche Ideen/Lösungen?

Dank

+0

Ist this.fields.push ({name: ''}) nicht ein Feld mit name-Attribut auf eine leere Zeichenfolge aktualisieren? – Adrianopolis

+0

Ahhh ja das ist es. Irgendwelche Vorschläge für eine Problemumgehung? – Dansmith12

+0

@Adrianopolis Nein, er drängt ein neues Objekt, sollte die bestehenden Objekte nicht beeinflussen – YounesM

Antwort

1

Ich traf die exact same problem vor 3 Tagen, kann man nicht anders input s mit dem gleichen name Attribut in einem form haben kann es den Wert der letzten Eingabe halten verbindlich. Dies sollte Ihr Problem lösen:

<ion-item *ngFor="let field of fields;let id = index"> 
    <ion-label fixed>Destination </ion-label> 
    <ion-input type="text" [(ngModel)]="field.name" name="name-{{id}}"></ion-input> 
    </ion-item> 
    <button ion-button color="light" icon-right (click)="addDestination()" > 
     Add Destination 
     <ion-icon name="add" ></ion-icon> 
    </button> 
+1

Danke !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! obwohl du meine ich nicht ID – Dansmith12

+0

@YounesM LOL Das ist genau das, was ich ihm in meinem Kommentar gesagt habe? Das Problem war, dass das Namensattribut nicht eindeutig ist. Warum hast du vorgeschlagen, dass ich nicht korrekt war? – Adrianopolis

+0

@Adrianopolis Sie vorgeschlagen, dass das Feld 'name' durch' name = '' 'wegen des geschobenen Objekts ersetzt wurde, was nicht ist. Alle Felder haben 'name =" name "' in ihnen wegen der Schleife und Angular erlaubt das nicht. Wenn es nicht das ist, was du meintest, hätte ich vielleicht falsch verstanden, was du gesagt hast. – YounesM

Verwandte Themen