Maison  >  Questions et réponses  >  le corps du texte

Impossible d'exécuter avec succès le code JavaScript dans Blade

J'ai un fichier appelé all.blade.php qui ressemble à ceci :

@component('admin.layouts.content' , ['title' => 'example file'])
   @slot('breadcrumb')
        <li class="breadcrumb-item active">Example File</li>
   @endslot
   ...
@endcomponent

@push('scripts')
    <script>
        Swal.fire({
            title: 'Do you want to save the changes?',
            showDenyButton: true,
            showCancelButton: true,
            confirmButtonText: 'Save',
            denyButtonText: `Don't save`,
        }).then((result) => {
            /* Read more about isConfirmed, isDenied below */
            if (result.isConfirmed) {
                Swal.fire('Saved!', '', 'success')
            } else if (result.isDenied) {
                Swal.fire('Changes are not saved', '', 'info')
            }
        })
    </script>
@endpush

C'est content.blade.php :

@extends('admin.master')

@section('content')
   {{ $slot }}
@endsection

C'est master.blade.php :

<!DOCTYPE html>
  <html>
     <head>
        ...
        @stack('scripts')
     </head>
     <body>
        @yield('content')
     </body>
   </html>

Le problème maintenant est que @push('scripts') ... @endpush ne fonctionne pas et le doux message d'alerte ne s'affiche pas.

Alors, quel est le problème ici ? Comment puis-je résoudre ce problème et appeler @component et @push ensemble sur la lame ?

P粉476046165P粉476046165211 Il y a quelques jours381

répondre à tous(2)je répondrai

  • P粉681400307

    P粉6814003072024-02-26 14:09:17

    Essayez Ctrl+U de vérifier si le composant est rendu à sa position. Notez également que si vous utilisez la bibliothèque Swallibrary JS, le code Swallibrary réel est chargé avant l'appel de la fonction fire().

    Enfin, veuillez vérifier les options de la console de votre navigateur pour déterminer s'il s'agit d'une erreur JS et non d'une erreur Blade.

    répondre
    0
  • P粉494151941

    P粉4941519412024-02-26 12:58:45

    Remplacer la commande de @push@component

    @push('scripts')
        sssccc
    @endpush
    
    @component('admin.layouts.content' , ['title' => 'example file'])
       @slot('breadcrumb')
            
       @endslot
       ...
    @endcomponent
    

    Une autre option consiste à convertir le main en composant

    
    
      
         
            ...
            {{ $scripts ?? '' }}
         
         
            {{ $slot }}
         
       
    

    et convertir le contenu en composants

    
    
        
           {{ $scripts ?? '' }}
        
        {{ $slot }}
    
       
    
    

    Vous pouvez alors écrire all.blade.php comme

    
        
            sssccc
        
        

    All

    répondre
    0
  • Annulerrépondre