【问题标题】:Laravel: include some js only when using some Blade layout views but not othersLaravel:仅在使用某些 Blade 布局视图时包含一些 js,而在其他视图中不包含
【发布时间】:2017-07-16 00:19:37
【问题描述】:

在 Laravel 环境中,我有一个 js.blade.php(将包含在我的所有布局视图中),保存全局 javascript 文件和一些 @yield 占位符,就像这样

<!-- BEGIN CORE PLUGINS -->
<script src="//code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="//cdn.jsdelivr.net/ie10-viewport/1.0.0/ie10-viewport.min.js"></script>
<!-- END CORE PLUGINS -->
<!-- BEGIN PAGE LEVEL PLUGINS -->
@yield('js-plugins')
<!-- END PAGE LEVEL PLUGINS -->
<!-- BEGIN SOME OTHER GENERAL PLUGINS -->
<script src="//cdn.jsdelivr.net/dummy1.min.js"></script>
<script src="//cdn.jsdelivr.net/dummy2.min.js"></script>
<!-- END SOME OTHER GENERAL PLUGINS -->
<!-- BEGIN PAGE LEVEL SCRIPTS -->
@yield('js-scripts')
<!-- END PAGE LEVEL SCRIPTS -->
<!-- BEGIN SCRIPTS TO BE RENDERED ONLY IN SOME LAYOUT VIEWS -->
...
<!-- END SCRIPTS TO BE RENDERED ONLY IN SOME LAYOUT VIEWS -->
<!-- BEGIN MY CUSTOM SCRIPTS -->
<script src="{{ asset('backend/scripts.js') }}"></script>
<!-- END MY CUSTOM SCRIPTS -->

你看到&lt;!-- BEGIN SCRIPTS TO BE RENDERED ONLY IN SOME LAYOUT VIEWS --&gt; 部分了吗?在这里,我应该有脚本进入master.blade.php 布局视图(用于用户登录时的大多数页面)但不在,即unlogged.blade.php 布局视图(用于登录,或找回丢失的密码,或其他所有涉及未登录的用户):我的意思是,即属于侧边栏导航的脚本(当然在“内部”页面中,但不在“外部”页面中)

好吧,我怎么能告诉 Laravel “当使用 master.blade.php 视图时,将一些脚本放在 ... 部分,否则保持原样”?目标是仅利用 js.blade.php 视图来保持干燥

我看了一下@push@stacks,但我不清楚它们是否可以使用

谢谢

【问题讨论】:

  • 你为什么不尝试在
  • 在这种情况下,我将使用ViewComposerif 语句。
  • @JaredChu,你能详细说明一下吗?

标签: laravel include laravel-5.3 blade


【解决方案1】:

在这种情况下使用 if 语句和 @include 代替 @yield

js.blade.php:

<!-- BEGIN SCRIPTS TO BE RENDERED ONLY IN SOME LAYOUT VIEWS -->
@if(!isset($limit) || (isset($limit) && !$limit))
    <script src="{{asset('js/home.js')}}"></script>
@endif
<!-- END SCRIPTS TO BE RENDERED ONLY IN SOME LAYOUT VIEWS -->

master.blade.php

@include('js')

unlogged.blade.php(你不想在这里渲染一些脚本)

@include('js',['limit'=>true])

完整示例:https://github.com/jaredchu/laravel-dynamic-view-example/tree/master/resources/views

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-18
    • 2018-06-08
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    相关资源
    最近更新 更多