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

482
Vistas
cómo obtener una lista de productos en la categoría en vue js

Hola, soy nuevo en vue y tengo una lista de datos json que tiene una lista de productos en la categoría. ¿Cómo puedo mostrar un producto en cada categoría?
Aquí están mis datos json para la matriz de categorías

 { "_id": "62566ec30e42d6c5ab370e7c", "products": [], "type": "mobile phone", "__v": 0 }

mi gama de productos

 { "_id": "625671db370e769a8a93a510", "reviews": [], "owner": { "_id": "6220db7ee861f3dbbaf21e3d", "name": "mr jacob", "about": "hello", "__v": 0 }, "category": { "_id": "62566ec30e42d6c5ab370e7c", "products": [], "type": "mobile phone", "__v": 0 }, "title": "galaxy s21", "description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Natus ullam iusto culpa assumenda enim ea, asperiores omnis, facere quos animi doloremque, architecto facilis aut? Nobis ab sit iusto praesentium quia.", "photo": "https://ajibade.s3.amazonaws.com/1649832365317", "price": 500, "stockQuantity": 1, "__v": 0, "id": "625671db370e769a8a93a510" }

mi plantilla html para obtener la lista de categorías en mi base de datos

 <div class="container" v-for="category in categories" :value="category._id" :key="category._id"> <span>{{category.type}}</span> </div>

mi etiqueta de script

 <script> export default { name: "Products", name: "categories", data() { return { categoryID: null, categories: [], products: [], }; }, mounted() { axios.get("http://localhost:5000/api/products").then(res => { console.log(res); this.products = res.data.products; }); axios.get("http://localhost:5000/api/categories").then(res => { console.log(res); this.categories = res.data.categories; }); } }; </script>

Por favor como filtro los productos y lo consigo en una categoria especifica, estoy perdido

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede hacer v-for interno de productos para categoría, pasando category._id al método:

 new Vue({ el: "#demo", data() { return { categoryID: null, categories: [], products: [], show: null }; }, methods: { productsForCat(cat) { return this.products.filter(p => p.category._id === cat) }, displayProd(id) { this.show === id ? this.show = null : this.show = id } }, mounted() { /*axios.get("http://localhost:5000/api/products").then(res => { console.log(res); this.products = res.data.products;*/ //}); this.products = [ {"_id": "625671db370e769a8a93a510", "reviews": [], "owner": {"_id": "6220db7ee861f3dbbaf21e3d", "name": "mr jacob", "about": "hello", "__v": 0}, "category": {"_id": "62566ec30e42d6c5ab370e7c", "products": [], "type": "mobile phone", "__v": 0}, "title": "galaxy s21", "description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Natus ullam iusto culpa assumenda enim ea, asperiores omnis, facere quos animi doloremque, architecto facilis aut? Nobis ab sit iusto praesentium quia.", "photo": "https://ajibade.s3.amazonaws.com/1649832365317", "price": 500, "stockQuantity": 1, "__v": 0, "id": "625671db370e769a8a93a510"}, {"_id": "625671db370e769a8a93a511", "reviews": [], "owner": {"_id": "6220db7ee861f3dbbaf21e3d", "name": "mr jacob", "about": "hello", "__v": 0}, "category": {"_id": "62566ec30e42d6c5ab370e7d", "products": [], "type": "mobile phone", "__v": 0}, "title": "galaxy", "description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Natus ullam iusto culpa assumenda enim ea, asperiores omnis, facere quos animi doloremque, architecto facilis aut? Nobis ab sit iusto praesentium quia.", "photo": "https://ajibade.s3.amazonaws.com/1649832365317", "price": 500, "stockQuantity": 1, "__v": 0, "id": "625671db370e769a8a93a510"} ] /*axios.get("http://localhost:5000/api/categories").then(res => { console.log(res); this.categories = res.data.categories;*/ //}); this.categories = [ {"_id": "62566ec30e42d6c5ab370e7c", "products": [], "type": "mobile phone", "__v": 0}, {"_id": "62566ec30e42d6c5ab370e7d", "products": [], "type": "phone", "__v": 0} ] } })
 <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="demo"> <div class="container" v-for="category in categories" :key="category._id"> <span @click="displayProd(category._id)">{{category.type}}</span> <div v-if="category._id === show"> <li v-for="product in productsForCat(category._id)" :key="product._id"> {{ product.title }} </li> </div> </div> </div>

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