你如何在 Angular2 中设置动态轮播指示器?

How do you set dynamic Carousel Indicators in Angular2?

我只能移动到一张幻灯片,然后“下一张”和“上一张”不起作用。而且我也无法点击指标来移动幻灯片。

但是当我用 class carousel-indicators 删除 div 时,“下一个”和“上一个”工作没有任何问题,我就是无法让它与指标一起工作。

到目前为止我做了什么:

<div style="background-color: black;">
  <div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel">
    <div class="carousel-indicators">
      <button type="button" data-bs-target="#carouselExampleCaptions" *ngFor="show of anime; let i = index"
        [attr.data-slide-to]="i" [ngClass]="{'active' : i == 0}" aria-current="true" aria-label="Slide 1"></button>
    </div>
    <div class="carousel-inner">
      <div class="carousel-item" *ngFor="let show of anime; let i = index" [ngClass]="{'active': i === 0}">
        <img src="{{show.img}}" class="d-block w-100" alt="...">
        <div class="carousel-caption d-none d-md-block">
          <h5>{{show.title}}</h5>
          <p>{{show.description}}</p>
        </div>
      </div>
    </div>
    <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
      <span class="carousel-control-prev-icon" aria-hidden="true"></span>
      <span class="visually-hidden">Previous</span>
    </button>
    <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
      <span class="carousel-control-next-icon" aria-hidden="true"></span>
      <span class="visually-hidden">Next</span>
    </button>
  </div>
</div>

TS 文件:

anime = [
    {
      img:
        'https://www.ft.com/__origami/service/image/v2/images/raw/https%253A%252F%252Fs3-ap-northeast-1.amazonaws.com%252Fpsh-ex-ftnikkei-3937bb4%252Fimages%252F5%252F3%252F5%252F8%252F28668535-1-eng-GB%252F%25E3%2582%25BD%25E3%2583%258B%25E3%2583%25BC%25E4%25B8%258A%25EF%25BC%2589%25E8%25BF%25BD%25E5%258A%25A0%25E3%2580%2580%25E9%25AC%25BC%25E6%25BB%2585%25E3%2581%25AE%25E5%2588%258320200805183428557_Data.jpg?width=700&fit=cover&gravity=faces&dpr=2&quality=medium&source=nar-cms',
      title: 'Demon Slayer',
      description: 'Demon Slayer description',
    },
    {
      img:
        'https://okuha.com/wp-content/uploads/2020/01/What_is_anime_art_feature_image.jpg',
      title: 'One Piece',
      description: 'One Piece description',
    },
    {
      img:
        'https://www.lifewire.com/thmb/yc8DN9SND5G8YkCNLYr6qv80Qz4=/650x0/filters:no_upscale():max_bytes(150000):strip_icc():format(webp)/anime-pokemon-5a191e1789eacc00372449e8-512c78337fbe42b2b6cd6280bb7a23f6.jpg',
      title: 'Pokemon',
      description: 'Pokemon description',
    },
  ];

我该怎么做才能让它发挥作用?

我是这样做的:

<div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel">
    <div class="carousel-indicators">
      <button type="button" data-bs-target="#carouselExampleCaptions" *ngFor="show of anime; let i = index"
        [attr.data-bs-slide-to]="i" [ngClass]="{i == 0? 'active': ''}" aria-current="true" [attr.aria-label]="'Slide-' + i + 1"></button>
    </div>
    <div class="carousel-inner">
      <div class="carousel-item" *ngFor="let show of anime; let i = index" [ngClass]="{'i == 0? 'active': ''}">
        <img src="{{show.img}}" class="d-block w-100" alt="no image here">
        <div class="carousel-caption d-none d-md-block">
          <h5>{{show.title}}</h5>
          <p>{{show.description}}</p>
        </div>
      </div>
    </div>
    <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
      <span class="carousel-control-prev-icon" aria-hidden="true"></span>
      <span class="visually-hidden">Previous</span>
    </button>
    <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
      <span class="carousel-control-next-icon" aria-hidden="true"></span>
      <span class="visually-hidden">Next</span>
    </button>
  </div>