你好,我正在开发一个角度为8的应用程序,我的输入仅包含年份。 我使用过mat-datepicker,只想选择年份。
<mat-form-field class="input-control">
<input matInput placeholder="{{'enter'|translate}}.." [formControl]="form.controls.openedAt"
[matDatepicker]="date" readonly>
<mat-datepicker-toggle matSuffix [for]="date"></mat-datepicker-toggle>
<mat-datepicker #date startView="multi-year"></mat-datepicker>
</mat-form-field>
此代码首先显示年视图,但是当我选择年时,将打开月视图,然后是天视图。
那么我如何只选择年份,或在mat-datepicker上仅显示年份视图?
答案 0 :(得分:2)
答案 1 :(得分:0)
I did like this:
html:
<mat-form-field
appearance="outline">
<mat-label>Ano</mat-label>
<input [(ngModel)]="selectYear" [formControl]="dateForm" matInput
[matDatepicker]="picker" />
<mat-datepicker-toggle matSuffix [for]="picker" ></mat-datepicker-
toggle>
<mat-datepicker
#picker
startView="multi-year"
(yearSelected)="chosenYearHandler($event, picker)"
></mat-datepicker>
</mat-form-field>
component:
export const MY_FORMATS = {
parse: {
dateInput: 'YYYY',
},
display: {
dateInput: 'YYYY',
monthYearLabel: 'YYYY',
monthYearA11yLabel: 'YYYY',
},
};
, 供应商: [ { 提供:DateAdapter, useClass: MomentDateAdapter, deps:[MAT_DATE_LOCALE,MAT_MOMENT_DATE_ADAPTER_OPTIONS] },
{provide: MAT_DATE_FORMATS, useValue: MY_FORMATS},
]
chosenYearHandler(ev, input){
let { _d } = ev;
this.selectYear = _d;
input._destroyPopup()
}
Its works well and very simple!!!