Angularx-flatpickr вызов changeMonth - Angular 7

Я использую angularx-flatpickr@6.1.0 Мне нужно изменить календарный месяц из кода. Согласно документации, должен быть метод changeMonth, Я пытался получить инстанс календаря из кода, но он выглядит как обычный элемент HTML, а не как плоский указатель. Кто-нибудь знает, есть ли способ назвать это? Или мне надо сбросить обертку и начать использовать чистую библиотеку?

Вот что я пробовал

<span
  type="text"
  mwlFlatpickr
  [(ngModel)]="selectedDate"
  [altInput]="true"
  [convertModelValue]="true"
  [inline]="true"
  (flatpickrDayCreate)="dayCreate($event)"
  #calendar
></span>

export class CalendarComponent {
  @ViewChild('calendar') calendar: Instance; // i tried ElementRef, any, FlatPickrDirective nothing got this method
  selectedDate: Date;

  constructor(private flatepickr: FlatpickrDefaults) {} // this services comes with wrapper but doesnt have any methods.

  dayCreate($e) {
    console.log($e);
  }
}

Извините, я спрашиваю здесь, но в репо нет проблем.

1 ответ

Я знаю, что уже немного поздно, но через некоторое время я наконец заставил это работать! Оказывается, мы можем получить экземпляр, прослушав одно из событий, генерируемыхmwlFlatpickrдиректива. Пожалуйста, проверьте документацию mwlFlatpickr :

      @Output()
 flatpickrReady: EventEmitter<FlatPickrOutputOptions> = new 
 EventEmitter();

export interface FlatPickrOutputOptions {
   selectedDates: Date[];
   dateString: string;
   instance: any;
}

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

Это сработало для меня:

.html-файл:

      <input #calendar
    (flatpickrReady)="calendarReady($event)"
    mwlFlatpickr>

.ts-файл:

      calendarInstance: any; // variable to store the instance reference
calendarReady(event) {
 this.calendarInstance = event.instance;
 // call methods from instance 
 // this.calendarInstance.toggle()
}

Надеюсь, поможет!

Другие вопросы по тегам