• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

206
Views
¿Cómo agregar una clase a elementos específicos creados con un bucle v-for?

Estoy creando un "verificador" de inventario simple que básicamente crea 14 divs que están "activos" o "inactivos". Con vue, creo estos divs con un simple bucle v-for:

 <div class="inventory"> <div class="item" v-for="index in 14" :key="index" ></div> </div>

Donde estoy atascado es que recibo datos de otra fuente que me proporciona una matriz con los números de los elementos del inventario que se consideran "activos".

por ejemplo:

 [{"id": "5","date": "2021-10-08 11:30:55"},{"id": "4","date": "2021-10-08 11:30:54"}]

Nota: la etiqueta de fecha es irrelevante para mi pregunta, pero da una idea de cómo me está buscando el objeto. hay más datos que son irrelevantes para mi pregunta

En este caso, eso significaría que debería dar una clase "activa" al artículo 4 y 5 en mi inventario. No veo cómo puedo recorrer los elementos (v-for looped) para agregarle esencialmente un if (inventoryId == id) {addclass 'active'}. ¿Algún consejo o truco agradable que pueda aplicar aquí? Si algo no está claro por favor hágamelo saber!

over 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede cambiar la matriz de otra fuente para que sea una matriz que contenga una cantidad de id, tal vez algo como esto:

 let otherSource = [{"id": "5","date": "2021-10-08 11:30:55"},{"id": "4","date": "2021-10-08 11:30:54"}] // activeIds as a state/data this.activeIds = otherSource.map(el => Number(el.id)) // activeIds as computed property activeIds(){ return otherSource.map(el => Number(el.id)) }

puede poner activeIds como una propiedad de estado/computada

y entonces

 <div class="inventory"> <div class="item" v-for="index in 14" :class="activeIds.includes(index) ? 'active' : 'inactive'" :key="index" ></div> </div>

También puede poner esta parte como propiedad calculada para mejorar

 activeIds.includes(index) ? 'active' : 'inactive'

creo que esto servirá

over 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error