【问题标题】:Refresh owl-carousel in Angular在 Angular 中刷新 owl-carousel
【发布时间】:2019-09-22 15:10:12
【问题描述】:

我对 owl carousel 有一些关于动态变化的问题,例如幻灯片的数量等 - 换句话说,在一些变化之后,carousel 很容易中断。

我的方法是重新加载/刷新轮播 - 但如何?

我在网上发现,你必须按类刷新:

$owl.trigger('refresh.owl.carousel');

但是如何将其翻译成 Angular/Typescipt?

【问题讨论】:

  • 您可以使用npmjs.com/package/ngx-owl-carousel。它旨在与 Angular 一起使用。它在 Angular 的最后 8 个版本中成功运行事件
  • @SergeyMell 我愿意,但是,即使有这个库,我如何刷新轮播?

标签: angular typescript owl-carousel


【解决方案1】:

所以,只要您使用ngx-owl-carousel(在您的评论之后),您的实现可能如下所示。

// component template

<owl-carousel [items]="images" #owlElement>
     <div class="item" *ngFor="let image of images;let i = index">
         <div class="thumbnail-image" [ngStyle]="{'background': 'url('abc.jpg')no-repeat scroll center center / 80px 80px'}"></div>
     </div>
 </owl-carousel>

请注意owlElement模板变量

那么如果你想处理或触发一些动作你可以参考这个元素

// Component class

import {OwlCarousel} from 'ngx-owl-carousel';

export class HomeComponent {

@ViewChild('owlElement') owlElement: OwlCarousel

   refresh() {
     this.owlElement.refresh()
   }
}

您可以使用方法触发器 (trigger(action: string, options?: any[])) 从 original documentation 调用您想要的任何事件。

【讨论】:

  • 这个建议正是我所需要的。它使您可以访问 ngx-owl-carousel 中定义的任何公共方法(实际上 ngx-owl-carousel-o 是更新的并且具有更多功能)底层 carousel.component.ts。使用完整的轮播代码项目,您可以通过定义额外的公共方法走得更远。
  • 谢尔盖。它不起作用..它说“刷新不是功能”
  • 您确定您使用的是ngx-owl-carousel 而不是ngx-owl-carousel-o?它们可能不同。由于 ngx-owl-carousel 已经有 4 年没有更新了,所以该方法应该仍然有效。你能分享一些演示以便我检查吗?
  • 是的,我正在使用 ngx-owl-carousel-o.. 我有下一步按钮。单击下一个按钮时,使用 this.owlElement.next() 将滑块移动到下一个。如果下一个 == 3,我从 http 加载更多数据,时间滑块从 1 移动到 4
  • 如您所见,我的回答适用于ngx-owl-carousel,不适用于ngx-owl-carousel-o 库。您可以创建一个单独的 SO 问题,如果您在那里分享一些代码示例会很棒 - 我很乐意提供帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多