【问题标题】:Reference slick instance from component (ngx-slick-carousel)从组件中引用 slick 实例 (ngx-slick-carousel)
【发布时间】:2018-08-03 06:08:48
【问题描述】:

我很难从我的组件中引用 ngx-slick-carousel 的实例。我在一个页面中有几个轮播,当我在两者之间切换时,我需要对它们进行梳理和融合。目前,我能够从我的组件中引用光滑轮播的唯一方法是,如果我使用 afterChange 方法并从我的模板中传递事件对象。

例如

在模板中

<ngx-slick-carousel 
     class="carousel gallery-one" 
     #galleryOne="slick-carousel" 
     [config]="slideConfig" 
     (afterChange)="afterChange($event)">

     <div ngxSlickItem *ngFor="let slide of slides.gallery" class="slide">
        <img src="{{slide.img}}">
     </div>
</ngx-slick-carousel>

在组件中

afterChange(e) {
  console.log(e.slick);
}

如何从我的组件中的任何位置引用像 after change 方法中的光滑实例?我尝试了几种方法,但似乎无法使其正常工作。任何想法将不胜感激。

【问题讨论】:

    标签: angular typescript slick.js


    【解决方案1】:

    模板

    <ngx-slick-carousel 
         class="carousel" #slickModal="slick-modal"
         #galleryOne="slick-carousel" 
         [config]="slideConfig" 
         (afterChange)="afterChange($event)">
    
         <div ngxSlickItem *ngFor="let slide of slides.gallery" class="slide">
            <img src="{{slide.img}}">
         </div>
    </ngx-slick-carousel>
    

    在组件中使用以下代码进行更改

    @ViewChild('slickModal') slickModal: SlickCarouselComponent;

    使用下面的代码来简单化

    this.slickModal.unslick();
    

    重新初始化使用下面的代码

    this.slickModal.initSlick();
    

    移动到特定幻灯片使用下面的代码

    this.slickModal.slickGoTo(0);
    

    【讨论】:

    • 非常感谢您抽出宝贵时间 Rahul,多亏了您的帮助,我才得以正常工作。你的答案有一个错误。 #slickModal="slick-modal" 抛出和错误没有将“exportAs”设置为“slick-modal”的指令我不得不使用#galleryOne="slick-carousel" 并使用@ViewChild('galleryOne') galleryOne;
    • 感谢@GalacticRanger 我更新了答案。如果它解决了您的问题,您可以将其标记为已回答
    • 如何获取当前活动的幻灯片? slickModal.slickCurrentSlide 似乎不起作用..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2021-08-08
    相关资源
    最近更新 更多