Quiero crear un componente livewire usando un folleto . Cuando el usuario hace clic en el mapa, aparece un marcador y se emite un evento que se puede capturar en JS. Pero quiero enviar esos datos directamente al servidor con livewire. Componente Livewire:
public $position; protected array $listeners = ['setPosition']; public function setPosition($position) { dd($position); }componente de la hoja:
<div wire:model="position" id="map"></div> <script> const map = L.map('map', { center: [35.6892, 51.3890], zoom: 14, minZoom: 12, maxZoom: 14 }); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'نقشه © <a href="https://openstreetmap.org">OpenStreetMap</a>' }).addTo(map); var marker = L.marker(); function onMapClick(e) { marker.setLatLng(e.latlng).addTo(map); console.log(Livewire, Livewire.emit('setPosition')); } map.on('click', onMapClick); </script>Usé Livewire.emit('setPosition') en la última etiqueta del script pero no pasa nada. O en un script separado:
<script> Livewire.emit('setPosition'); </script>