Shlop
@Shlop
Full Stack Developer (PHP/Laravel/JavaScript)

Как в v-bind:class сделать конкатенацию?

Здравствуйте, у меня есть входной параметр theme, и такой вот элемент в компоненте (если что их несколько просто я не стал весь код сюда скидывать):
<button :disabled="!prevPage" v-bind:class="{ pagination__btn_disabled: !prevPage }" type="button" title="Назад" class="pagination__btn" @click="onPrevPage">
  <img class="pagination__icon" src="/svg/admin/pagination/prev.svg" alt="Назад">
</button>

И нужно вот сделать что бы если параметр theme истина то мы добавляем класс к кнопке, такого вот вида: pagination__btn_theme_ + theme подскажите пожалуйста как более правильней это сделать ? Пробовал сделать вот так:
{ pagination__btn_disabled: !prevPage, 'pagination__btn_theme_' + theme : theme}

Но это выдаёт ошибку.
Заранее благодарю за ответ.
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
computed:{
  classes(){
    return {
      pagination__btn_disabled: !this.prevPage,
      [`pagination__btn_theme_${this.theme}`]: !!this.theme,
    }
  }
}
<button
  class="pagination__btn"
  :class="classes"
  :disabled="!prevPage"
  type="button"
  title="Назад"
  @click="onPrevPage"
>
  <img class="pagination__icon" src="/svg/admin/pagination/prev.svg" alt="Назад">
</button>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы