2016-01-22 3 views
8

私は<select>をフォームに使用して、ユーザーが異なる<option>の間で値を更新できるようにしたいと考えています。私はここのガイドのテクニックを使用しました:https://angular.io/docs/ts/latest/guide/forms.html角2:フォームのさまざまなオプションから選択した値を取得するにはどうすればよいですか?

<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> 

私のため-details.componentに私はupdateOrderを持っている()myApp.servicesからupdateOrder()を呼び出します。ここで私が話していたサンプルです。

私の問題は、フォームからバックエンドにデータを送信しようとしたときです。<input>のすべての部分はOKですが、<select>の部分はOKです(選択した値ではなく元の値を返します)。 )。

誰かがこれに遭遇しましたか、それと同様の問題がありますか? ご協力いただきありがとうございます!

+0

http://stackoverflow.com/questions/34686855/angular2-access-a-select-event-change-within-the-component –

答えて

20

さまざまなオプションから値を取得する方法があります。 チェックこの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

実際問題は再現できません。私は、inputselectという非常にシンプルな形のプランを作成しました。フォームを送信すると、バインドされたオブジェクトに実際の値が格納されます。このplunkr:https://plnkr.co/edit/5C3agW7QZfcrdt88QzSh?p=previewを参照してください。

あなたの問題を正しく理解していないかどうかは自由に教えてください。

Thierry

+0

実際には、あなたの問題を再現したようですplunkr:あなたのフォームを提出しようとすると、私は ''の中で正しい値を得ていますが、 '