@roofmorozov
Vuejs

Как забиндить клик внутри компонента вставленного через v-for?

Есть 5 компонентов, выставленных через v-for, внутри компонентов есть button, мне нужно что бы при нажатии на этот button в переменную присваивался индекс этого button'a
Проблема в том, что через v-for выставлен компонент, а не сам button и я не понимаю, как кнопке присвоить индекс
Примерный код:
App.vue:
<eclipse-item v-for="i in 5" :key="i" ></eclipse-item>

Компонент:
<template>
  <div class="circle__area">
   <span class="circle__text" :class="'circle__text' + circleNumber">{{circleText[circleNumber]}}</span>
   <button class="circle__button">
    <img class="circleImage" :class="'circleImage' + circleNumber" :src="require('@/assets/img/eclipse' + circleNumber + '.png')">
   </button>
  </div>
</template>

Заранее спасибо за помощь!
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 2
Fragster
@Fragster
помогло? отметь решением!
В компонент передать индекс через проп, при нажатии на кнопку эмитить этот индекс в событии. В родительском компоненте - ловить. как-то так: https://jsfiddle.net/y5981mwc/
Ответ написан
wapster92
@wapster92
  1. В eclipse-item передавай props с её индексом, и передавай этот индекс в метод события, который должен висеть на button.


  2. В eclipse-item можно создать slot для button и вставлять button непосредственна в родительский компонент
    <eclipse-item v-for="i in 5" :key="i" ><button @click="myMethod(i)">Что-то там</button></eclipse-item>


Ответ написан
Комментировать
Ваш ответ на вопрос

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

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