Angular 2 - динамически обновлять пользовательские MAT_DATE_FORMATS - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю в 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 формат .

Но мне было интересно, есть ли другой способ сделать это, не реализуя новый пользовательский адаптер даты.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...