Изображение Bootstrap Carousel отображается два раза в Angular 6

Я новичок в разработке. Здесь, в моем проекте, у меня есть карусель, в настоящее время у меня есть 10 изображений (получение путей к изображениям из базы данных через ответ json при загрузке страницы).

В чем моя проблема: первое изображение отображается два раза.

app.component.ts

this.CartdataService.get_Basic_Images().subscribe(
      data => {

        this.get_Carousel_Images = data['1'];
        this.slider_Active_Item = data[1][0]['CAROUSEL_IMAGE_PATHS'];
      });

Здесь я выбрал первое изображение из ответа json и установил его в активный элемент. Я хочу установить его автоматически.

app.component.HTML

 <div class = "col">
        <div class = "container">
            <div class = "row">
                <div id = "carouselExampleControls" class = "col-sm-12  col-md-12 carousel slide" data-ride = "carousel">
                    <div class = "carousel-inner">
                        <div class = "carousel-item active">
                            <img class = "d-block w-100" src = "{{slider_Active_Item}}" alt = "First slide">
                        </div>
                        <div *ngFor = "let sliders of get_Carousel_Images; let i = index" class = "carousel-item">
                            <img class = "d-block w-100" [src] = "sliders['CAROUSEL_IMAGE_PATHS']" [alt] = "'img' + i">
                        </div>
                    </div>
                    <a class = "carousel-control-prev" href = "#carouselExampleControls" role = "button" data-slide = "prev">
                        <span class = "carousel-control-prev-icon" aria-hidden = "true"></span>
                        <span class = "sr-only">Previous</span>
                    </a>
                    <a class = "carousel-control-next" href = "#carouselExampleControls" role = "button" data-slide = "next">
                        <span class = "carousel-control-next-icon" aria-hidden = "true"></span>
                        <span class = "sr-only">Next</span>
                    </a>
                </div>
            </div>
        </div>
    </div>

может кто-нибудь помочь мне исправить это.

Можете ли вы представить краткий обзор вашей проблемы? Тебе было бы легче помочь. Если вы хотите использовать начальную загрузку в приложении angular, вы можете подумать об использовании valor-software.com/ngx-bootstrap/#/carousel. Вы получите доступ к начальной загрузке, выполненной более угловатым способом. Нет необходимости снова изобретать колесо.

Adrian Sawicki 03.07.2018 10:09

@AdrianSawicki stackblitz.com/edit/…

Zhu 03.07.2018 11:51

@AdrianSawicki здесь я привел код stacklitz, вы можете увидеть, что "первый слайд" появляется два раза, я не смог воспроизвести карусель на 100%, пути к изображениям там не работают

Zhu 03.07.2018 11:52

@AdrianSawicki, ты это проверил?

Zhu 03.07.2018 12:20
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
4
765
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны удалить первое изображение из списка изображений. Вы можете отфильтровать это. У вас двойное первое изображение из-за:

 <div class = "carousel-item active">
   <img class = "d-block w-100" src = "{{slider_Active_Item}}" alt = "First slide">
 </div>

Вот первое активное изображение, а затем в цикле вы используете то же самое, потому что оно не отфильтровано из списка доступных изображений.

Если вы отфильтруете его, вы добавите каждое изображение без первого, которое уже использовалось.

this.get_Carousel_Images = data['1'].filter((img, i) => i !== 0);

stackblitz ...

Другой вариант - просто удалить это изображение из списка данных и дать прямую ссылку на ваше первое активное изображение. Нет необходимости выбирать его из массива.

Другие вопросы по теме