Laravel & Alpine.js |. elemen DOM untuk menulis kod Alpine.js berdasarkan keadaan PHP
P粉763748806
P粉763748806 2023-08-06 11:54:24
0
1
505

<p>UpdateSoftwareRequest ini mengembalikan data ini atas ralat: </p> <pre class="brush:php;toolbar:false;"> fungsi awam selepas(): tatasusunan { kembali [ fungsi (Validator $validator) { Jika ($ nilai-& gt; gagal ()) {) {                            $validator->errors()->add('model', $this->route('software')); session(['showUpdateSoftwareModal', true]);             }                                     ]; } </pra> <p>Saya mahu rentang ini mendapat x-init berdasarkan nilai sesi. Saya cuba melakukannya seperti ini: </p> <pre class="brush:html;toolbar:false;"> <span x-data="{}" x-on:click="$dispatch('open-modal', 'edit-software-modal ')" data-type="edit" {{ session('showUpdateSoftwareModal') === true ? 'x-init="console.log('HI')"' : '' }}>Edit</span> ; </pra> <p>Tetapi apabila nilainya benar, x-init tidak akan mencetuskan penulisan. Ada sesiapa boleh tolong? <br /><br />Edit: Baru menjumpai ini dalam dokumentasi: <br /><br />Anda boleh menambah x-init di dalam atau di luar blok HTML x-data dalam mana-mana unsur. Contohnya:<br /><br />Adakah sesiapa tahu tentang penyelesaian lain? Saya cuba mencetuskan semula mod edit di mana medan dalam modal diambil daripada sifat data pada induk td butang pada klik. Pencetus ralat datang daripada permintaan borang dan saya cuba mencetuskan butang untuk baris tertentu. </p>

P粉763748806
P粉763748806

membalas semua(1)
P粉350036783

Nampaknya terdapat masalah dengan petikan kerana ia dilepaskan oleh {{ }} bilah, jadi ia harus ditukar kepada:

{{ session('showUpdateSoftwareModal') === true ? 'x-init="console.log(\'HI\')"' : '' }}

Boleh digunakan:

{!! session('showUpdateSoftwareModal') === true ? 'x-init="console.log(\'HI\')"' : '' !!}

Tetapi saya cadangkan anda mengambil pendekatan berbeza:

<span x-data="{myFlag: {{ (int)session('showUpdateSoftwareModal', false) }} }"
      @click="$dispatch('open-modal', 'edit-software-modal')"
      data-type="edit"
      x-init="if (myFlag) {console.log('HI')}"
>
  Edit
</span>

Dengan cara ini anda boleh menggunakan myFlag di mana-mana sahaja dalam objek Alpine.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan