Heim  >  Fragen und Antworten  >  Hauptteil

JavaScript-Code kann in Blade nicht erfolgreich ausgeführt werden

Ich habe eine Datei namens all.blade.php, die so aussieht:

@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

Das ist content.blade.php:

@extends('admin.master')

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

Das ist master.blade.php:

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

Das Problem ist jetzt, dass @push('scripts') ... @endpush nicht funktioniert und die süße Warnmeldung nicht angezeigt wird.

Was ist hier also das Problem? Wie kann ich dieses Problem lösen und @component und @push gemeinsam auf dem Blade aufrufen?

P粉476046165P粉476046165260 Tage vor420

Antworte allen(2)Ich werde antworten

  • P粉681400307

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

    尝试 Ctrl+U 检查该组件是否呈现到其位置。另请注意,如果您使用的是 Swallibrary JS 库,那么实际的 Swallibrary 代码会在调用 fire() 函数之前加载。

    最后请检查浏览器控制台选项以确定是否是某些 JS 错误,而不是刀片错误。

    Antwort
    0
  • P粉494151941

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

    调换 @push@component 的顺序

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

    另一种选择是将转换为组件

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

    并将内容转换为组件

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

    然后你可以将all.blade.php编写为

    
        
            
        
        

    All

    Antwort
    0
  • StornierenAntwort