Задать вопрос
@astrodeep

Как добавить data-атрибут в компонент vue-slick-carousel?

Использую компонент vue-slick-carousel:

data() {
            return {
                info: [],
                loading: true,
                errored: false,
                slickOptions: {
                    dots: false,
                    infinite: false,
                    slidesToShow: 3,
                    slidesToScroll: 3,
                    autoplay: true,

                    responsive: [
                        {
                            breakpoint: 1240,
                            settings: {
                                slidesToShow: 3,
                                dots: true,
                                autoplay: true,
                                arrows: false,

                            },
                        },
                        {
                            breakpoint: 980,
                            settings: {
                                slidesToShow: 2,
                                dots: true,
                                autoplay: true,
                                arrows: false,

                            },
                        },

                        {
                            breakpoint: 567,
                            settings: {
                                slidesToScroll: 1,
                                slidesToShow: 1,
                                centerPadding: '0px',
                                dots: true,
                                autoplay: true,
                                arrows: false,
                                centerMode: true,
                            },
                        },

                    ],

                },
            };
        },

<vue-slick-carousel  v-bind="slickOptions" :class="key" class="content__offers-box"
                            v-for="(offers, key) in info.offers"
        >
.....
      </vue-slick-carousel>

Как добавить data-attr в тег vue-slick-carousel? :data-id="key" не работает.
  • Вопрос задан
  • 199 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Игра на Vue.js
    1 неделя
    Далее
  • OTUS
    Vue.js разработчик
    4 месяца
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Поскольку ваш data-атрибут очевидно не является параметром, он конечно должен был быть назначен корневому элементу компонента, но автор компонента наследование атрибутов решил отключить. Так что придётся закостылить. Добавляем ссылку на экземпляр компонента, после монтирования вручную назначаем корневому элементу атрибут:

<vue-slick-carousel
  ref="slick"
  @hook:mounted="$refs.slick.$el.dataset.id = 666"
  ...

UPD. Раз у вас там v-for, значит вместо одной ссылки на экземпляр, будет массив. Надо индекс указывать. Ну и не забывать о том, что соответствие порядка элементов в массиве ссылок на экземпляры порядку элементов в массиве с данными не гарантируется.

https://jsfiddle.net/v6pot7nr/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы