【发布时间】:2026-01-01 17:05:01
【问题描述】:
我正在开发一个可以处理日期的 Angular9 应用程序。
它显示和更新几个<mat-datepicker> 字段。
我正在使用来自https://www.npmjs.com/package/@angular/material-moment-adapter 的自定义MAT_DATE_FORMATS 和MomentDateAdapter (@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]
}
]
// ..
Stackblitz 演示:https://stackblitz.com/edit/angular-formatted-datepicker-vdtaqj?file=app%2Fdatepicker-overview-example.ts
现在,我想知道是否可以动态地更新APP_MOMENT_DATE_FORMATS.display.dateInput 的值 - 例如:可能会通过 http 请求从配置服务中设置 ,或者我会在界面中显示一个选择器。
示例:
export const APP_MOMENT_DATE_FORMATS =
{
// ..
display: {
dateInput: this.appService.dateInputFormat,
// ..
}
};
我知道我可以实现自定义日期适配器,如下所述:Angular 2 Material 2 datepicker date format。
但我想知道是否有另一种方法可以做到这一点,而无需实现新的自定义日期适配器。
谢谢。
【问题讨论】: