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()
}
Надеюсь, поможет!