Reputation: 5250
I have a dropdown select form in angular 2.
Currently: When I select an option the option name
gets passed into my onChange
function as $event
Wanted: When I select an option I would like to pass workout.id
into my onChange
function.
How can I achieve that?
<select class="form-control" [ngModel]="selectedWorkout" (ngModelChange)="onChange($event)">
<option *ngFor="#workout of workouts">{{workout.name}}</option>
</select>
Controller
onChange(value){
alert(JSON.stringify(value));
}
Upvotes: 33
Views: 82999
Reputation: 116
you could also use [ngValue] inside option:
<select class="form-control" [ngModel]="selectedWorkout" (ngModelChange)="onChange($event)">
<option *ngFor="#workout of workouts" [ngValue]="workout">{{workout.name}}</option>
</select>
Upvotes: 3
Reputation: 55443
<select class="form-control" [ngModel]="selectedWorkout" (ngModelChange)="onChange($event)">
<option *ngFor="#workout of workouts" [value]="workout.id">{{workout.name}}</option>
</select>
OR
<select class="form-control" [(ngModel)]="selectedWorkout" (change)="onChange($event.target.value)">
<option *ngFor="#workout of workouts" [value]="workout.id" >{{workout.name}}</option>
</select>
Upvotes: 75