【发布时间】:2021-09-16 15:33:33
【问题描述】:
我有这样一个场景:
- 显示 Ngb Bootstrap 轮播并通过两个按钮控制幻灯片图像:上一个和下一个。
- 单击上一个按钮时显示上一张幻灯片图像,单击下一张按钮则显示下一张幻灯片图像。
- 很遗憾,我的代码不起作用。有人可以帮助我。以下是我的代码:
- HTML 代码:
<div class="wrapper-md">
<div class="modal-header">
<h5 class="modal-title">TITLE HERE</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" (click)="modal.dismiss('Cross click')">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<ngb-carousel #carousel *ngIf="images" [showNavigationArrows]="false" [showNavigationIndicators]="false" [keyboard]="false">
<ng-template ngbSlide *ngFor="let image of images; index as i">
<div class="picsum-img-wrapper">
<img [src]="image" alt="Guide image">
</div>
<div class="carousel-caption">
<h4>Slide {{i}}</h4>
</div>
</ng-template>
</ngb-carousel>
</div>
<div class="row justify-content-center">
<button type="button" class="btn btn-sm btn-primary m-r" *ngIf="!isNext" (click)="skip()">Skip</button>
<button type="button" class="btn btn-sm btn-info m-r" *ngIf="isNext" (click)="previousStep()">Previous</button>
<button type="button" class="btn btn-sm btn-success" (click)="nextStep()">Next</button>
</div>
</div>
- TypeScript 代码:
images = [62, 83, 466, 965, 982, 1043, 738].map((n) => `https://picsum.photos/id/${n}/900/500`);
@ViewChild('carousel', {static: true}) carousel: NgbCarousel;
isPrevious: boolean = false;
isNext: boolean = false;
constructor(public modal: NgbActiveModal){
}
skip()
{
this.modal.close();
}
previousStep()
{
this.isPrevious = true;
this.carousel.prev();
}
nextStep()
{
this.isNext = true;
this.carousel.next();
}
在我的情况下任何想法。 提前致谢!
【问题讨论】:
-
欢迎您,SangBui!如果您可以为 stackblitz 提供复制功能,则将有更多机会找到答案。您可能需要手动触发更改检测。很难给出更好的建议。
-
嗨 IAfanasov,因为我无法在 Stackblizt 中安装引导轮播,因此无法重现它。但是我将解决方案更改为弹出视频。感谢您的回复!
标签: javascript angular typescript carousel ng-bootstrap