jquery - Laravel 6 @yield() 在 include() 方法中不起作用
问题描述
为什么@yield('script')
不起作用?
我在 PHP laravel Blade master.blade.php文件中创建一个布局,如下所示
@include('layouts.header')
@include('layouts.sidebar')
<div class="main-panel">
<!-- Navbar -->
@include('layouts.navbar')
<!-- End Navbar -->
<div class="content">
<div class="container-fluid">
@yield('content')
</div>
</div>
</div>
</div>
@include('layouts.footer')
我通过使用 @section('script') layouts.footer文件添加@yield('script')
了layouts.footer
编写脚本代码
....
<script src="{{ asset('./assets/js/core/jquery.min.js') }}"></script>
@yield('script')
...
</body>
</html>
当我section('script')
在刀片页面中使用它时它不起作用
我@yield('script')
像这样使用
@extends('layouts.master')
@section('content')
<div>
<button class="btn btn-sm btn-outline-primary" id="modal">
Sponsored
</button>
</div>
@endsection
// JQuery code
@section('script')
<script>
$(document).on("click", "#modal", function () {
alert('hello world');
});
</script>
@endsection
解决方案
Blade 允许您推送到命名堆栈,这些堆栈可以在另一个视图或布局中的其他位置呈现。这对于指定子视图所需的任何 JavaScript 库特别有用:
include
这是scripts
and的错误方法links
。
你可以使用@stack
它。更多关于堆栈
layouts.footer文件
<script src="{{ asset('./assets/js/core/jquery.min.js') }}"></script>
@stack('script')
刀片文件
@push('script')
<script>
$(document).on("click", "#modal", function () {
alert('hello world');
});
</script>
@endpush
推荐阅读
- javascript - 如何在 React Native 中动态应用不同样式以匹配来自动态段落的文本
- c# - c# ExeConfiguration (System.Configuration) 中的子元素
- mysql - 使用 pgloader 将 MySQL 数据库转换为 Postgres 数据库
- php - 通过 mysql cli 快速连接 MySQL,但使用 PDO 速度较慢
- flutter - 有没有办法在颤振中制作像模态一样的css?
- java - org.neo4j.ogm.exception.core.MappingException:多个类具有简单名称
- java - 无法创建 Sinch 客户端
- templates - 如何在 Flask 中呈现错误页面,不会导致请求的蓝图出现错误循环?
- c - 如果数据类型像 unsigned long int 等,如何标记 ac 程序
- java - 当我使用两个图表时,如何在导航图中获取当前选定的片段 ID