Glide.js динамическое добавление содержимого из Json

#javascript #json #slider #carousel #glidejs

#javascript #json #слайдер #карусель #glidejs

Вопрос:

Я пытаюсь динамически добавлять содержимое в слайдер из JSON.

 import Glide from '@glidejs/glide';

function slider() {
  let ul = document.querySelector('.glide__slides');
  let card = '';
  var glide = new Glide('.glide').destroy();

  const photo = import('../metadata/photos.json').then((module) => {
    const data = module.default;
    data.forEach((photo) => {
      console.log(photo);
      card  = `<li class="glide__slide"><img src="${photo.thumbnailUrl}" alt="${photo.title}">${photo.id}</li>`;
    });
    ul.innerHTML = card;
  });

  glide.mount();
}

slider();
  

Кажется, что содержимое загружается, но ползунок не работает

Ответ №1:

Это происходит потому, что glide.mount(); выполняется до завершения импорта и генерации HTML.

Итак, вам нужно импортировать данные и добавить их then call glide.mount(); .

 import Glide from '@glidejs/glide';

function slider() {
  let ul = document.querySelector('.glide__slides');
  let card = '';
  var glide = new Glide('.glide').destroy();

  const photo = import('../metadata/photos.json').then((module) => {
    const data = module.default;
    data.forEach((photo) => {
      console.log(photo);
      card  = `<li class="glide__slide"><img src="${photo.thumbnailUrl}" alt="${photo.title}">${photo.id}</li>`;
    });
    ul.innerHTML = card;
  }).then(() => glide.mount());
}

slider();
  

Комментарии:

1. Спасибо за вашу помощь