wal*_*ili 6 angular-material angular8 mat-datepicker
您好,我正在开发一个带有 angular 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>
Run Code Online (Sandbox Code Playgroud)
此代码首先显示年视图,但是当我选择年份时,将打开月视图,然后打开天视图。
那么如何在 mat-datepicker 上仅选择年份或仅显示年份视图?
小智 10
我确实喜欢这样(支持 Angular 14):
组件.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>
Run Code Online (Sandbox Code Playgroud)
组件.ts:
export const MY_FORMATS = {
parse: {
dateInput: 'YYYY',
},
display: {
dateInput: 'YYYY',
monthYearLabel: 'YYYY',
monthYearA11yLabel: 'YYYY',
},
};
@Component({
providers: [
{
provide: DateAdapter,
useClass: MomentDateAdapter,
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]
},
{
provide: MAT_DATE_FORMATS, useValue: MY_FORMATS
},
]
})
export class MainFormComponent implements OnInit {
@ViewChild('picker', { static: false })
private picker!: MatDatepicker<Date>;
chosenYearHandler(ev, input){
let { _d } = ev;
this.selectYear = _d;
this.picker.close()
}
}
Run Code Online (Sandbox Code Playgroud)
它工作得很好而且非常简单!!!
此功能尚未完全实现。你可以在这里看到:
https://github.com/angular/components/issues/4853
现在你可以试试这个:
https://stackblitz.com/edit/angular-mulitdate-picker-demo
归档时间: |
|
查看次数: |
10866 次 |
最近记录: |