我在一家Angular9与日期一起使用的应用程序。
它显示并更新几个<mat-datepicker>
fields.
我正在使用自定义MAT_DATE_FORMATS
and MomentDateAdapter
(@angular/material-moment-adapter
) from https://www.npmjs.com/package/@angular/material-moment-adapter https://www.npmjs.com/package/@angular/material-moment-adapter.
我正在使用以下代码,效果很好:
export const APP_MOMENT_DATE_FORMATS =
{
parse: {},
display: {
dateInput: 'YYYY/MM/DD/MM',
monthYearLabel: 'MMM YYYY',
dateA11yLabel: 'LL',
monthYearA11yLabel: 'MMMM YYYY'
}
};
//..
providers: [
{
provide: MAT_DATE_FORMATS, useValue: APP_MOMENT_DATE_FORMATS
},
{
provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]
}
]
// ..
堆栈闪电战演示:https://stackblitz.com/edit/angular-formatted-datepicker-vdtaqj?file=app%2Fdatepicker-overview-example.ts https://stackblitz.com/edit/angular-formatted-datepicker-vdtaqj?file=app%2Fdatepicker-overview-example.ts
现在,我想知道是否可以更新APP_MOMENT_DATE_FORMATS.display.dateInput
动态地 - eg: 也许它将通过 http 请求从配置服务进行设置, 或者可能我将在界面中显示一个选择器.
example:
export const APP_MOMENT_DATE_FORMATS =
{
// ..
display: {
dateInput: this.appService.dateInputFormat,
// ..
}
};
我知道我可以实现自定义日期适配器,如下所述:Angular 2 Material 2 日期选择器日期格式 https://stackoverflow.com/questions/44452966/angular-2-material-2-datepicker-date-format.
但我想知道是否有另一种方法可以做到这一点,而无需实现新的自定义日期适配器。
Thanks.