如何在 ng-bootstrap 轮播中用 div 替换图像?

Posted

技术标签:

【中文标题】如何在 ng-bootstrap 轮播中用 div 替换图像?【英文标题】:How to replace images with divs in ng-bootstrap carousel? 【发布时间】:2021-12-19 19:47:58 【问题描述】:

我在 Angular 中使用 ng-bootstrap。我也在使用chart.js。我已经构建了两个使用数据实时更新的图表。我想在轮播中展示这些图表,允许用户滑动查看每个图表。我正在尝试使用ng-bootstrap 提供的carousel 指令,但我似乎无法弄清楚如何将img 指令替换为两个divs 我已经将图表画布包裹起来。

这是我尝试复制的示例,来自:StackBlitz Example

<ngb-carousel #carousel [interval]="50000">
  <ng-template ngbSlide *ngFor="let img of images; index as i">
    <div class="picsum-img-wrapper">
      <img [src]="img"  />
    </div>
  </ng-template>
</ngb-carousel>

我不想在图像之间循环,而是在两个图表的div 之间循环。有没有办法做到这一点?

这是我目前拥有的两个图表的 HTML 代码:

<!-- Chart 1 -->
    <div>
        <div id = "crowOnPerchChart">
            <canvas baseChart
                    [datasets]="crowOnPerchChartData"
                    [labels]="crowOnPerchChartLabels"
                    [options]="crowOnPerchChartOptions"
                    [legend]="crowOnPerchChartLegend"
                    [chartType]="crowOnPerchChartType"
                    >
            </canvas>
        </div>
    </div>

<!-- Chart 2 -->
<div>
    <div id = "coinsDepositedChart">
        <canvas baseChart
                [datasets]="coinsDepositedChartData"
                [labels]="coinsDepositedChartLabels"
                [options]="coinsDepositedChartOptions"
                [legend]="coinsDepositedChartLegend"
                [chartType]="coinsDepositedChartType"
                >
        </canvas>
    </div>
</div>

【问题讨论】:

【参考方案1】:

你可以只删除图像的东西并使用 div 内容,例如

<ngb-carousel *ngIf="showCarousel" #carousel [interval]="5000">
  <ng-template ngbSlide>
    <div style="background-color: black; height: 200px">
      <h1>Graph 1</h1>
    </div>
  </ng-template>
  <ng-template ngbSlide>
    <div style="background-color: black; height: 200px">
      <h1>Graph 2</h1>
    </div>
  </ng-template>
</ngb-carousel>

请在此处找到代码示例https://stackblitz.com/edit/angular-uz29lk?file=src/app/carousel-basic.html

【讨论】:

啊,谢谢!我认为我错过了ngbSlide 部分。早些时候我这样做时只是得到一个空白屏幕。

以上是关于如何在 ng-bootstrap 轮播中用 div 替换图像?的主要内容,如果未能解决你的问题,请参考以下文章

使用 css 样式化 ng-bootstrap 手风琴

手风琴正在打破 div 的高度

如何将几个div实现在同一位置做图片轮播

如何自动设置光滑轮播的高度

如何在角度 4 中使用 ng-bootstrap 将数据模态组件传递给父组件

在 ng-bootstrap datepicker 中将 CSS 类应用于自定义日期模板