web-dev-qa-db-ja.com

選択オプションを変更するときに現在の値を取得する-Angular2

Angular2コンポーネントを作成していて、この問題に直面しています。

説明:(change)イベントがトリガーされたときに、選択セレクターのオプション値をそのハンドラーにプッシュします。

以下のテンプレートなど:

<select (change)="onItemChange(<!--something to Push-->)">
    <option *ngFor="#value of values" value="{{value.key}}">{{value.value}}</option>
</select>

コンポーネントクラス:

export Class Demo{

  private values = [
     {
        key:"key1",
        value:"value1"
     },
     {
        key:"key2",
        value:"value2"
     }
  ]

  constructor(){}
  onItemChange(anyThing:any){
     console.log(anyThing); //Here I want the changed value
  }
}

(jqueryを使用せずに)値を取得するにはどうすればよいですか?

31
Garry

さまざまなオプションから値を取得する方法があります。これを確認してください 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;
  }
55
Mubashir

angular 4では、これは私のために働いた

template.html

<select (change)="filterChanged($event.target.value)">
<option *ngFor="let type of filterTypes" [value]="type.value">{{type.display}}
</option>
</select>

component.ts

export class FilterComponent implements OnInit {

selectedFilter:string;
   public filterTypes = [
   {value:'percentage', display:'percentage'},
  {value:'amount', display:'amount'},
  ];

   constructor() { 
   this.selectedFilter='percentage';
   }

   filterChanged(selectedValue:string){
   console.log('value is ',selectedValue);

   }

  ngOnInit() {
  }

  }
25
javed

この作業を確認してください Plunker

<select (change)="onItemChange($event.target.value)">
    <option *ngFor="#value of values" [value]="value.key">{{value.value}}</option>
</select>
3
micronyks

私にとって、@ microniksが示唆する($ event.target.value)を渡すことは機能しませんでした。代わりに($ event.value)が機能しました。 Angular 4.2.xおよびAngular Material 2を使用しています

<select (change)="onItemChange($event.value)">
    <option *ngFor="#value of values" [value]="value.key">
       {{value.value}}
    </option>
</select>
2
Bright Dodo

ngValueを使用できます。 ngValueは、スティングとオブジェクトの両方を渡します。

オブジェクトとして渡す:

<select (change)="onItemChange($event.value)">
    <option *ngFor="#obj of arr" [ngValue]="obj.value">
       {{obj.value}}
    </option>
</select>

文字列として渡す:

<select (change)="onItemChange($event.value)">
    <option *ngFor="#obj of arr" [ngValue]="obj">
       {{obj.value}}
    </option>
</select>
1
Ashfaq Hussain