Angular Material Selectを使用して休日を表示します。ユーザーが休日を選択するとき、休日の名前ではなく日付を表示したいと思います。たとえば、ユーザーが "Christmas"を選択した場合、選択した値に「12月25日」を表示する必要がある
<mat-form-field>
<mat-select [(ngModel)]="selectedHoliday" placeholder="Select A Holiday" (change)="eventSelection($event.value)">
<mat-option *ngFor="let holiday of holidays" [value]="holiday">{{ holiday.name }}</mat-option>
</mat-select>
</mat-form-field>
変更の選択時にngmodelを正しい日付に設定します。
selectedHoliday: string;
holidays = [
{ name: 'Christmas', date: 'Dec 25'} ,
{ name: 'New Years', date: 'Jan 1'}
]
eventSelection(event){
this.selectedHoliday = event.date
}
SelectedHolidayを日付に設定すると、選択した値として何も表示されません。ここにプランカーがあります: https://plnkr.co/edit/9lhHJhNyuWUxqYF6nMwK?p=preview
オプションvalue
はholiday
オブジェクトに設定され、[(ngModel)]
は選択されたイベントのdate
プロパティに設定されます。あなたの場合は_holiday.date
_。
したがって、select
は、値_holiday.date
_のオプションを探しますが、オプションには値holiday
があります。
select
[(ngModel)]
は、そのvalue
のoption
と相関する必要があります。
_[value]="holiday.date"
_