Подтвердить что ты не робот

Angular 2 ngModelChange выбрать опцию, захватить определенное свойство

У меня есть выпадающая форма выбора в angular 2.

В настоящее время: когда я выбираю параметр, option name передается в мою функцию onChange как $event

Требуется: когда я выбираю вариант, я хотел бы передать workout.id в мою функцию onChange.

Как я могу это достичь?

<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));
}
4b9b3361

Ответ 1

<select class="form-control" [ngModel]="selectedWorkout" (ngModelChange)="onChange($event)">
    <option *ngFor="#workout of workouts" [value]="workout.id">{{workout.name}}</option>
</select>

ИЛИ

<select class="form-control" [(ngModel)]="selectedWorkout" (change)="onChange($event.target.value)">
    <option *ngFor="#workout of workouts" [value]="workout.id" >{{workout.name}}</option>
</select>

проверьте это

Ответ 2

вы также можете использовать опцию [ngValue] внутри:

<select class="form-control" [ngModel]="selectedWorkout" (ngModelChange)="onChange($event)">
  <option *ngFor="#workout of workouts" [ngValue]="workout">{{workout.name}}</option>
</select>