Пагинация не работает в Angular | СвиперJS

Я пытаюсь использовать swiper.js, но его нумерация страниц не работает, слайдер работает, но нет нумерации страниц, вот код.

тс

ngAfterViewInit(): void {
    new Swiper('.swiper-container', {
      spaceBetween: 30,
      pagination: {
        el: '.swiper-pagination',
        clickable: true,
      },
      breakpoints: {
        767: {
          slidesPerView: 2,
        },
      },
    });
  }

HTML

<div class = "swiper swiper-container">
      <div class = "swiper-wrapper">
        <div class = "swiper-slide">IMAGE 1</div>
        <div class = "swiper-slide">IMAGE 2</div>
        <div class = "swiper-slide">IMAGE 3</div>
        <div class = "swiper-slide">IMAGE 4</div>
        <div class = "swiper-slide">IMAGE 5</div>

      </div>
      <div class = "swiper-pagination"></div>
</div>

Слайдер работает, отображаются только два слайда, а нумерация страниц — нет.

Код инициализации внешней библиотеки обычно должен выполняться за пределами зоны Zone.js Angular, чтобы избежать ненужных запусков обнаружения изменений. О том, как это сделать, смотрите здесь: angular.dev/best-practices/… Достаточно просто разместить код инициализации new Swiper внутри обратного вызова runOutisdeAngular. Не уверен, что это решит проблему, но это определенно приведет к увеличению производительности :)

davidlj95 09.07.2024 13:07

@ davidlj95 davidlj95 Спасибо за совет, я обновил свой код, но, как вы сказали, это может не решить проблему, но это не так.

Muhammad Faisal 09.07.2024 13:57

Вот рабочий пример реализации элемента Swiper с нумерацией страниц: stackblitz.com/edit/… (режим WebComponent — рекомендуемый способ включения его в приложение Angular. См. swiperjs.com/angular) .

Lucas Tesseron 09.07.2024 14:59

Рад слышать это ;)

Lucas Tesseron 09.07.2024 15:46
Тестирование функциональных 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
1
4
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я думаю, что вам не хватает одного атрибута в нумерации страниц для отображения маркеров или страниц. Не могли бы вы попробовать что-нибудь подобное?

  pagination: {
            el: '.swiper-pagination',
            renderBullet: function (index, className) {
                return '<span class = "' + className + '">' + (index + 1) + '</span>';
            },
            clickable: true,
        },

Все еще не работает

Muhammad Faisal 09.07.2024 13:53

Рад, что Лукас помог.

JoSeTe4ever 09.07.2024 19:56
Ответ принят как подходящий

Итак, я решил решение, увидев ответ Лукаса, мне пришлось добавить

import { register } from 'swiper/element/bundle';

register();

в файле main.ts

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