mgsmus
Hocam neden sevmiyorsun , gözlemlediğin eksiklikler ne ?
Jetstream 'de bunla beraber destekleme yapılınca ben de devam ettim. Şimdi böyle bir şeye ihtiyacım olduğunda tıkandım.
Dediğin kısmı inceledim. Event dinleme ve blade özelliklerini kullanın demiş.
Blade tarafındaki şu adımları deniyorum
parent blade :
@stack("scripts")
child blade:
@push("scripts")
<script src="{{ asset('/js/Integration/integration1.js') }}"></script>
@endpush
İlgili kısımda script dosyalarını yakalıyorum ama script içeriğim hiç çalışmıyor.
Diğer bir yöntem olarak şunu denedim.
Script dosyasını ilk açılışta eklettim.
Script dosyamı şu şekilde planladım:
document.addEventListener('matchtypeselected', function (event) {
console.log(event.detail.name);
})
İlgili Class içerisinde ise :
public string $component = 'integration1-category-match';
public string $wireKey = "category";
public array $params = [];
protected $listeners = [
'matchTypeSelected' => "onMatchTypeSelected"
];
public function onMatchTypeSelected($component, $params = [])
{
$this->wireKey = $component;
$this->component = "integration1-" . $component . "-match";
$this->params = $params[0] ?? [];
}
public function hydrate()
{
$this->dispatchBrowserEvent('matchtypeselected', ["name" => $this->wireKey]);
}
public function render(): Factory|View|Application
{
return view('livewire.integration1');
}
Aslında bu çözüm isteğimi karşılıyor gibi oldu. Sonradan anlamadığım bir sebepten dolayı seçimler karışır oldu.
<select wire:change="$emit('matchTypeSelected', $event.target.value)" class="form-control"
name="EslestirmeTipi" id="EslestirmeTipi">
<option value="category">Kategori Eşleştirmesi</option>
<option value="product">Ürün Eşleştirmesi</option>
</select>
category seçtiğimde product değeri göndermeye başladı. Bunun sebebini anlayamadım.
Hafta sonu da birkaç araştırma yaptım ama çözüm bulamadım. Herkes yukarıdaki push ve stack olayının işi çözdüğünü belirtmiş. İlgili kısımlar html e geliyor gelmesine de hiç çalışmıyor