2016-02-13 10 views
6

Używam kątowa 2.Jak dynamicznie tworzyć wiele wejść, a następnie uzyskać ich wartości w Angular 2?

Chcę dynamicznie tworzyć wiele wejść, a następnie dostarczenie sposobów, aby ich wartości za pomocą [(ngModel)]="input1" lub inne sposoby:

Myślałem o użyciu [hidden], ale odkąd don” t znać dokładną liczbę wejść, które użytkownik chce, więc zapytałem o to, w jaki sposób mogę dynamicznie tworzyć dane wejściowe.

html

<button (click)="addInput()">Add Input</button> 

ts

addInput() { 
    // first time click, add <input type="text" [(ngModel)]="input1"/> 
    // second time click, add <input type="text" [(ngModel)]="input2"/> 
    // third time click, add <input type="text" [(ngModel)]="input3"/> 
    // forth, fifth, etc. 
} 

Dzięki

Odpowiedz

8

Utwórz tablicę obiektów. Naciśnij na tablicę, gdy chcesz wprowadzić nowe wejście. Użyj NgFor, aby wygenerować elementy formularza.

@Component({ 
    selector: 'my-app', 
    template: `<button (click)="addInput()">Add Input</button> 
    <div *ngFor="let input of inputs"> 
    <input [(ngModel)]="input.value"> 
    </div> 
    {{inputs | json}}` 
}) 
export class AppComponent { 
    inputs = [{value: "first"}]; 
    addInput() { 
    this.inputs.push({value: ''}); 
    } 
} 

Plunker

+0

dziękuję, Mark! –

+0

To działa. Jednak chciałbym użyć tego samego podejścia do tworzenia konfiguracji opcji/opcji. Czy to możliwe? Próbuję pod różnymi kątami, ale dostaję tylko garść ogromnych błędów dotyczących "bez dostępu do wartości do kontroli formularza z nieokreślonym atrybutem nazwy" ... –

Powiązane problemy