Обновление триггера для карусели совы в angular в пакете ngx-owl-carousel-o

Я хочу, чтобы моя карусель совы обновлялась с обновленными вариантами реагирования. В jquery это можно сделать с помощью: $owl.trigger('refresh.owl.carousel'); как указано здесь: Обновить сову-карусель в Angular (но для другого плагина, который использует jquery в качестве зависимости).

В API есть упоминание о refreshClass, но нет упоминания о запуске обновления экземпляра https://www.npmjs.com/package/ngx-owl-carousel-o

Это возможно?


person Anon    schedule 14.04.2020    source источник


Ответы (3)


Добавьте свой ViewChild:

   @ViewChild('carousel', { static: true }) carousel: CarouselComponent;

Получите ваш сервис;

   const anyService = this.carousel as any;
   const carouselService = anyService.carouselService as CarouselService;

    carouselService.refresh();
    carouselService.update();
person UberGeoff    schedule 18.08.2020

Основываясь на предложении UberGeoff, я нашел это решение.

@ViewChild('owlCar', { static: true }) owlCar: CarouselComponent;

.
.

@HostListener('window:resize', ['$event'])
onResize(event) {
    let anyService = this.owlCar as any;
    let carouselService = anyService.carouselService as CarouselService;  
    carouselService.onResize(event.target.innerWidth);
}

не элегантное решение, но оно работает

person MaDIroN    schedule 28.12.2020

Тоже искал ответ на этот вопрос. Моя идея заключалась в том, чтобы получить доступ к элементу с помощью @Viewchild, а затем CarouselService. Кстати, как у вас все прошло? @Анон

person Jumar Juaton    schedule 30.04.2020
comment
В итоге я не использовал карусель, но стремился найти решение для будущего использования. - person Anon; 02.05.2020
comment
Так какую альтернативу вы использовали? Я пока пропущу работу над этим, но вернусь через несколько недель к поиску решения. - person Jumar Juaton; 04.05.2020