Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

119
Visualizações
alternar la clase en la salida de la función en vue

Quiero representar el contenido de requestData en elementos li , cada elemento de la lista obtiene una función onclick que, si se hace clic en el elemento li (seleccionado), agrega un valor específico de una referencia a una matriz más tarde si se vuelve a hacer clic (no seleccionado) elimina el elemento /

¿Cómo puedo combinar la salida de la función true / false ?
a :class="{ selected: requestData }" para agregar o eliminar la clase si está seleccionada/no seleccionada

 <template> <section> <ul> <li v-for="item in requestData.items" :key="item.id" :class="{ selected: requestData }" @click="getSelectedElemData($event.target)" > {{ item.name }} </li> </ul> </section> </template> <script> import { onMounted, ref } from "@vue/runtime-core"; import items from "../assets/comp.Data/items.json"; export default { setup() { let requestData = ref(items); let selectedElements = []; function getSelectedElemData(target) { for (let element of requestData._rawValue.items) { if (target.innerText === element.name) { console.log(element); // Add to calc // update the selectedElements array selectedElements.push(element); console.log(selectedElements); return true; } } } return { requestData, getSelectedElemData, }; }, }; </script>
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede intentar usar este enfoque y llamar a la función isItemSelected para cada elemento. Si el elemento está incluido en la lista, la clase que agregamos al li, de lo contrario, se eliminará. Y cambie la función isItemSelected de acuerdo con su conjunto de datos actual, el enfoque a continuación es para una matriz de objetos.

 <template> <section> <ul> <li v-for="item in requestData.items" :key="item.id" :class="{ 'selected': isItemSelected(item) }" @click="getSelectedElemData($event.target)" > {{ item.name }} </li> </ul> </section> </template> <script> import { onMounted, ref } from "@vue/runtime-core"; import items from "../assets/comp.Data/items.json"; export default { setup() { let requestData = ref(items); let selectedElements = []; function getSelectedElemData(target) { for (let element of requestData._rawValue.items) { if (target.innerText === element.name) { console.log(element); // Add to calc // update the selectedElements array selectedElements.push(element); console.log(selectedElements); return true; } } } function isItemSelected(item){ return selectedElements.find(element=>element.id===item.id) } return { requestData, isItemSelected, getSelectedElemData }; }, }; </script>
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda