Rumah  >  Soal Jawab  >  teks badan

Laravel & Alpine.js |. elemen DOM untuk menulis kod Alpine.js berdasarkan keadaan PHP

<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粉763748806P粉763748806419 hari yang lalu426

membalas semua(1)saya akan balas

  • P粉350036783

    P粉3500367832023-08-07 09:54:24

    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.

    balas
    0
  • Batalbalas