2016-04-20 112 views
2

我試圖使用laravel刀片模板,包括一些JavaScript代碼進入子視圖。

我有我的郵件app.blade.php文件,其中放置jQuery的初始化字符串:

<script src="/js/jquery.min.js"></script> 

在我的子視圖文件settings.blade.php我想使用一些jQuery函數:

@extends('layouts.app') 
@section ('content') 
Settings main page 
@endsection 

<script type="text/javascript"> 
    $(document).ready(function() { 
     alert("Settings page was loaded"); 
    }); 
</script> 

但在瀏覽器控制檯我得到一個錯誤信息未捕獲的ReferenceError:$沒有定義這似乎像jQuery WA s加載AFTER在子視圖文件中調用該函數。

添加一行:<script src="/js/jquery.min.js"></script>轉換爲settings.blade.php可解決此問題。但我不想將我的腳本文件添加到我的每個子視圖文件中。

所以問題:我如何加載主要的JavaScript \ jquery文件在父級刀片文件之前加載子視圖文件?

+0

請更正js文件的路徑,並將js文件放在pa的頂部在加載子視圖之前租用頁面。 –

+0

js文件的路徑是正確的。我的調試器中沒有出現錯誤。如果文件在app.blade.php中使用,它將加載正確,沒有任何錯誤 –

回答

6

請遵循jQuery腳本文件,這樣

做到這一點

<script src="{!!url('/js/jquery.min.js')!!}"></script> 

和內容部分

@extends('layouts.app') 
@section ('content') 
Settings main page 

<script type="text/javascript"> 
    $(document).ready(function() { 
     alert("Settings page was loaded"); 
    }); 
</script> 

@endsection 

更新

做到這一點

而是在內容部分,它會更好的腳本和專業的方式在app.blade.php

通常我按照這種方式

<html> 
    <head> 
    @yield('page-style-files') 
    </head> 

    <body> 
    <div class="wrapper"> 
    @yield('content') 
    </div> 
    </body> 

    @yield('page-js-files') 
    @yield('page-js-script') 

<html> 

所以創建腳本另一部分例如您的代碼將如下所示

@extends('layouts.app') 
@section ('content') 
    Settings main page  
@endsection 

@section('page-style-files') 
<link href="....css" /> 
@stop 


@section('page-js-files') 
<script src=".....js"></script> 
@stop 

@section('page-js-script') 
<script type="text/javascript"> 
    $(document).ready(function() { 
     alert("Settings page was loaded"); 
    }); 
</script> 
@stop 
+0

非常感謝。將