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を使用せずに)値を取得するにはどうすればよいですか?
さまざまなオプションから値を取得する方法があります。これを確認してください 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;
}
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() {
}
}
この作業を確認してください Plunker
<select (change)="onItemChange($event.target.value)">
<option *ngFor="#value of values" [value]="value.key">{{value.value}}</option>
</select>
私にとって、@ 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>
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>