Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

112
Vistas
Cómo alternar dos íconos en v-for list item en Vue

Tengo una lista de elementos e íconos que quiero alternar. ¿Cómo debo hacer eso? En este momento, mi clic afecta a todos los elementos.

 <ion-item v-for="course in courses" :key="course.id"> <ion-label class="ion-text-wrap">{{ course.name }}</ion-label> <span @click="toggleIcons"> <ion-icon v-if="isSelected" :icon="ellipseOutline" slot="end"></ion-icon> <ion-icon v-else :icon="checkmarkCircleOutline" slot="end"></ion-icon> </span> </ion-item> /// data() { return { isSelected: false, } }, methods: { toggleIcons(){ this.isSelected = !this.isSelected } }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Prueba como el siguiente fragmento:

 new Vue({ el: "#demo", data() { return { courses: [{id:1, name: 'aaa'}, {id:2, name: 'bbb'},{id:3, name: 'ccc'}], isSelected: null } }, methods: { toggleIcons(id){ this.isSelected === id ? this.isSelected=null : this.isSelected = id } } })
 <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="demo"> <div v-for="course in courses" :key="course.id"> <label class="ion-text-wrap">{{ course.name }}</label> <button @click="toggleIcons(course.id)"> click <div v-if="isSelected === course.id " slot="end">1</div> <div v-if="isSelected !== course.id " slot="end">2</div> </button> </div> </div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Lo mejor que puede hacer es tener una propiedad de datos para mantener el índice (o el course.id en su caso) del botón "alternar"

Y luego @click establece el id del course.id del elemento en el que se hizo clic en la propiedad de datos, después de eso, puede hacer coincidir la propiedad de datos con el course.id del curso y mostrar su icono

Verifique el ejemplo a continuación

Propiedad de datos

 data() { return { selectedCourseId: null, } },

Método para configurar (o puede configurarlo en línea)

 methods: { setSelectedCourseId(id) { this.selectedCourseId = id }, }

Modelo

 <ion-item v-for="course in courses" :key="course.id"> <ion-label class="ion-text-wrap">{{ course.name }}</ion-label> <span @click="toggleIcons"> <ion-icon v-if="selectedCourseId === course.id" :icon="ellipseOutline" slot="end"></ion-icon> <ion-icon v-else :icon="checkmarkCircleOutline" slot="end"></ion-icon> </span> </ion-item>
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda