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

212
Vistas
¿Cómo obtener datos solo si los datos no se completan en el front-end usando livewire y alpinejs?

Para usar menos recursos, quiero obtener datos del servidor (usando livewire) solo por primera vez y las otras veces para usar los datos ya obtenidos en alpinejs.

Entonces, si hay un cambio en mi <select> , se fillStates los estados de relleno:

 <select wire:model="selectedCountry" name="selectedCountry" id="selectedCountry" wire:change="fillStates"> <option value="">Select Country</option> @foreach($this->countries as $country) <option value="{{ $country->id }}">{{ $country->name }}</option> @endforeach </select>

El método fillStates devolverá los datos:

 public function fillStates() { $states = State::where('country_id', $this->selectedCountry)->get(); if(count($states)) { $this->states[$this->selectedCountry] = $states; return $this->states[$this->selectedCountry]; } return []; }

Y mi pregunta está aquí. ¿Cómo puedo evitar que solicite más de una vez cuando $this->states[$country] ya tiene valor y se puede acceder con alpinejs?

Por ejemplo, selecciono Estados Unidos en mi <select> . Por primera vez, necesita obtener los datos que son sus estados. Lo cambio a Canadá. Esta vez necesita recuperar los datos que son sus estados. Pero si vuelvo a seleccionar Estados Unidos, no debería solicitarlo, ya que ya se ha obtenido y está disponible en alpinejs. ¿Cómo puedo lograrlo?

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

0

Creo que tienes que validar manualmente usando alpinejs.

 <div x-data="{ selectedCountry: null, countries: {}, }" x-init="$watch('selectedCountry', () => { if(! (selectedCountry in countries)) { @this.call('fillStates'); countries[selectedCountry] = @this.get('states'); } })" > <select x-model="selectedCountry" name="selectedCountry" id="selectedCountry" > <option value="">Select Country</option> @foreach($this->countries as $country) <option value="{{ $country->id }}">{{ $country->name }}</option> @endforeach </select> </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