Я работаю в Angular9 приложении, которое работает с датами. Он отображает и обновляет несколько полей <mat-datepicker>
.
Я использую пользовательские MAT_DATE_FORMATS
и MomentDateAdapter
(@angular/material-moment-adapter
) из https://www.npmjs.com/package/@angular / Material-момент-адаптер .
Я использую следующий код, который работает нормально:
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 Материал 2 DatePicker date формат .
Но мне было интересно, есть ли другой способ сделать это, не реализуя новый пользовательский адаптер даты.
Спасибо.