Можно ли динамически изменять форматер ngbDatepicker? - PullRequest
0 голосов
/ 28 июня 2019

Я ищу способ переключения между различными форматерами даты (например, mm-dd-гггг / дд-мм-гггг) в элементе управления ngbDatepicker на основе выбора пользователя.

Любые идеи / помощьоценили.

1 Ответ

0 голосов
/ 29 июня 2019

Конечно (невозможно ничего).Но прежде чем это необходимо, вы понимаете, что DateParserFormater и DateAdapter видят этот вопрос в stackoverflow

В вашем случае вам нужна только работа с CustomDateParseFormat

Ну, единственное, что мынеобходимо, чтобы функции parse / format и fromModel / toModel в зависимости формировали одну переменную.Я не нашел отличный способ также внедрить службу

@Injectable({
  providedIn: 'root',
})
export class MaskController{
  mask:string="yyyy/MM/dd"
  public setMask(mask)
  {
    this.mask=mask;
  }
}

И наш CustomDateParserFormatter внедрить в конструктор

@Injectable()
export class CustomDateParserFormatter {
  constructor(private maskController:MaskController){}
  get mask()
  {
    return this.maskController.mask;
  }
   ...
}

ну, единственное, что нам нужно, это изменить нашу функцию в зависимости от значения"маска", и когда вызов

maskController.setMask(...)

Наш ngbDatePicker работает, как мы хотим.Y поместил пример в stackblitz (допускается только две «маски»: dd / MM / yyyy и yyyy / MM / dd)

ПРИМЕЧАНИЕ.Просто не входит в провайдер CustomDateAdapter

...