suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Laravel & Alpine.js |. DOM-Elemente zum Schreiben von Alpine.js-Code basierend auf PHP-Bedingungen

<p>Dieses UpdateSoftwareRequest gibt bei einem Fehler diese Daten zurück: </p> <pre class="brush:php;toolbar:false;"> öffentliche Funktion after(): Array { zurückkehren [ Funktion (Validator $validator) { If ($ value-& gt; failed ()) {) {                            $validator->errors()->add('model', $this->route('software')); session(['showUpdateSoftwareModal', true]);             }                                    ]; } </pre> <p>Ich möchte, dass dieser Span eine x-Init basierend auf dem Sitzungswert erhält. Ich versuche es so zu machen: </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> ; </pre> <p>Aber wenn der Wert wahr ist, löst x-init den Schreibvorgang nicht aus. Kann jemand helfen? <br /><br />Bearbeiten: Habe gerade Folgendes in der Dokumentation gefunden: <br /><br />Sie können x-init innerhalb oder außerhalb des x-data-HTML-Blocks in jedem hinzufügen Element. Zum Beispiel:<br /><br />Kennt jemand andere Lösungen? Ich versuche, ein Bearbeitungsmodal erneut auszulösen, wobei die Felder innerhalb des Modals beim Klicken aus Dateneigenschaften im übergeordneten TD der Schaltfläche übernommen werden. Der Fehler wird durch eine Formularanforderung ausgelöst und ich versuche, eine Schaltfläche für eine bestimmte Zeile auszulösen. </p>

P粉763748806P粉763748806468 Tage vor490

Antworte allen(1)Ich werde antworten

  • P粉350036783

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

    似乎引号存在问题,因为它们被blade的{{ }}转义了,所以应该改为:

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

    可以用:

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

    但我建议您采用不同的方法:

    <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>
    

    这样您可以在Alpine对象的任何地方使用myFlag。

    Antwort
    0
  • StornierenAntwort