Laravel刀片使用$(document).ready函数

Juk*_*ton 3 jquery laravel-5.2 laravel-blade

我正在尝试使用laravel刀片模板,包括一些javascript代码到子视图中.

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

<script src="/js/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

在我的子视图文件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>
Run Code Online (Sandbox Code Playgroud)

但是在浏览器控制台中我收到一条错误消息Uncaught ReferenceError:$未定义,似乎在调用子视图文件中的该函数加载了jquery .

添加一行:<script src="/js/jquery.min.js"></script>into settings.blade.php可以解决问题.但我不想将我的脚本文件添加到我的每个子视图文件中.

所以问题:加载子视图文件之前,如何在父刀片文件中加载主javascript\jquery 文件?

Qaz*_*azi 12

请按照这种方式

对于jquery脚本文件执行此操作

<script src="{!!url('/js/jquery.min.js')!!}"></script>
Run Code Online (Sandbox Code Playgroud)

并为内容部分执行此操作

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

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

@endsection
Run Code Online (Sandbox Code Playgroud)

更新


而不是在内容部分编写脚本,在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>
Run Code Online (Sandbox Code Playgroud)

所以例如你的代码看起来像这样

@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
Run Code Online (Sandbox Code Playgroud)