2016-01-22 4 views
8

Ich möchte eine <select> in einem Formular verwenden, um den Benutzer in der Lage sein, Werte zwischen verschiedenen <option> zu aktualisieren. Ich habe die Technik aus der Anleitung hier verwendet: https://angular.io/docs/ts/latest/guide/forms.html. Hier ist die Probe über die ich spreche:Angular 2: Wie erhält man den ausgewählten Wert aus verschiedenen Optionen eines Formulars?

<div class="form-group"> 
    <label for="type">Type :</label> 
    <select class="form-control" [(ngModel)]="order.type" ngControl="type"> 
     <option *ngFor="#type of types" [value]="type">{{type}}</option> 
    </select> 
</div> 

In meiner Bestellung-details.component Ich habe haben eine updateOrder(), die die updateOrder() aufruft, von myApp.services.

Mein Problem ist, wenn ich versuche, die Daten aus dem Formular an das Back-End zu senden: alle Teile mit einem <input> sind in Ordnung, aber nicht mit <select> (es gibt die ursprünglichen Werte und nicht die eine ausgewählt).

Hat jemand dieses oder ein ähnliches Problem festgestellt? Danke für Ihre Hilfe!

+0

Sieht aus wie eine dup von http://stackoverflow.com/questions/34686855/angular2-access-a-select-event-change-within-the-component –

Antwort

20

Es gibt einen Weg, um den Wert von verschiedenen Optionen zu erhalten. dies überprüfen plunker

component.html

<select class="form-control" #t (change)="callType(t.value)"> 
     <option *ngFor="#type of types" [value]="type">{{type}}</option> 
    </select> 

component.ts

this.types = [ 'type1', 'type2', 'type3' ]; 
    this.order = { 
     type: 'type1'   
    }; 

    callType(value){ 
    console.log(value); 
    this.order.type=value; 
    } 
1

In der Tat kann ich Ihr Problem nicht reproduzieren. Ich habe mit einem input und einem select einen Plunkr mit einer sehr einfachen Form erstellt. Wenn ich das Formular absende, habe ich tatsächliche Werte in dem gebundenen Objekt. Siehe diese Plunkr: https://plnkr.co/edit/5C3agW7QZfcrdt88QzSh?p=preview.

Fühlen Sie sich frei, mir zu sagen, wenn ich Ihr Problem nicht richtig verstanden habe.

Thierry

+0

Eigentlich scheint es, dass Sie mein Problem in Ihrem reproduziert haben plunkr: Wenn ich versuche, das Formular abzuschicken, erhalte ich den korrekten Wert innerhalb der '', aber unabhängig von dem Typ, den ich in'