es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo escribir una condición en JavaScript usando el operador ternario

Tengo un select y opciones en mi formulario, pero me gustaría prellenar el select con los datos previamente seleccionados, pero parece que no puedo hacer que funcione.

Aquí está mi código:

<select name="holding_id" v-model="service.holding_id">
    <option value="">Selecciona un grupo de holding</option>
    <option v-for="holding in holdings" v-bind:key="holding.id" v-bind:value="holding.id">
        {{ holding.holding_name }}
    </option>
</select>

Estoy pensando que usar un operador ternario en JavaScript tendría sentido.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para prellenar el select con los datos antiguos según una condición, puedes utilizar una propiedad calculada para determinar si se deben prellenar los datos o no. Por ejemplo:

    <template>
      <select name="holding_id" v-model="service.holding_id">
        <option value="">Selecciona un grupo de empresas</option>
        <option v-for="holding in holdings" v-bind:key="holding.id" v-bind:value="holding.id">
          {{ holding.holding_name }}
        </option>
      </select>
    </template>
    
    <script>
    export default {
      data() {
        return {
          service: {
            holding_id: '' // establece el valor inicial aquí
          }
        }
      },
      computed: {
        preselectedHolding() {
          // verifica si existen datos antiguos para prellenar
          if (this.existingData) {
            // encuentra el grupo de empresas con el ID coincidente y devuélvelo
            return this.holdings.find(holding => holding.id === this.existingData.holding_id)
          } else {
            // devuelve null si no existen datos antiguos
            return null
          }
        }
      },
      mounted() {
        // preselecciona el grupo de empresas si existe
        if (this.preselectedHolding) {
          this.service.holding_id = this.preselectedHolding.id
        }
      }
    }
    </script>
    

    En este ejemplo, la propiedad calculada preselectedHolding verifica si existen datos antiguos para prellenar y, si es así, encuentra el grupo de empresas con el ID coincidente y lo devuelve. Si no existen datos antiguos, devuelve null.

    El gancho de ciclo de vida mounted establece el holding_id del select en el ID del grupo de empresas preseleccionado, si existe, lo que prellena el select con los datos antiguos.

    Ten en cuenta que debes reemplazar existingData con tu propia fuente de datos, como una prop o un estado Vuex de la tienda. También puedes modificar la lógica de la propiedad calculada para que se ajuste a tu caso de uso específico.

Comments are closed.