从组件(ngx-slick-carousel)引用光滑的实例

Gal*_*ger 0 typescript slick.js angular

我在尝试从我的组件中引用 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>
Run Code Online (Sandbox Code Playgroud)

在组件中

afterChange(e) {
  console.log(e.slick);
}
Run Code Online (Sandbox Code Playgroud)

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

小智 5

模板

<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>
Run Code Online (Sandbox Code Playgroud)

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

@ViewChild('slickModal') slickModal: SlickCarouselComponent;

要取消使用下面的代码

this.slickModal.unslick();
Run Code Online (Sandbox Code Playgroud)

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

this.slickModal.initSlick();
Run Code Online (Sandbox Code Playgroud)

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

this.slickModal.slickGoTo(0);
Run Code Online (Sandbox Code Playgroud)