Laravel 5 中使用 JavaScript 的部分视图

Posted

技术标签:

【中文标题】Laravel 5 中使用 JavaScript 的部分视图【英文标题】:Partial views with JavaScript in Laravel 5 【发布时间】:2015-07-28 01:53:45 【问题描述】:

我有多个部分刀片文件,它们都只需要一点点 javascript。理想情况下,我希望部分加载它需要的 JS,而普通的 JS 不会包含它。我知道你可以将它全部加载到一个大的 JS 文件中,但我想知道是否有一种方法可以提供更优雅的解决方案。

我希望下面的解决方案适用于多个文件(它适用于一个,但不适用于 n。由于刀片的渲染引擎,使用了第一个部分刀片遭遇)。

test.page.blade.php

@extends('layouts.default')
@section('title', 'Poses')

@section('content')
    <div class="container">
        <div class="row">
            @include('test.partial.one')
            @include('test.partial.two')
        </div>
    </div>
@stop
@section('javascript')
    @include('test.partial.one')
    @include('test.partial.two')
@stop

部分测试.partial.one.blade.php

@section('content')

    <h1>One</h1>

@stop

@section('javascript')

    <script>Scripts from one</script>

@stop

部分测试.partial.two.blade.php

@section('content')

    <h1>Two</h1>

@stop

@section('javascript')

    <script>Scripts from two</script>

@stop

【问题讨论】:

【参考方案1】:

您的问题的解决方案是 @parent 指令,您必须在 javascript 部分中使用它。

test.page.blade.php

@extends('layouts.default')
@section('title', 'Poses')

@section('content')
    <div class="container">
        <div class="row">
            @include('test.partial.one')
            @include('test.partial.two')
        </div>
    </div>
@stop

@yield('javascript')

test.partial.one.blade.php

@section('content')
    <h1>One</h1>
@stop

@section('javascript')
    <script>Scripts from one</script>
    @parent
@stop

test.partial.two.blade.php

@section('content')
    <h1>Two</h1>
@stop

@section('javascript')
    <script>Scripts from two</script>
    @parent
@stop

更多参考:http://laravel.com/docs/5.0/templates

【讨论】:

以上是关于Laravel 5 中使用 JavaScript 的部分视图的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.2 中带有 javascript 的模态视图中的动态图像

在 Laravel 5.x 中添加带有刀片引擎代码的外部 javascript 文件?

将Javascript变量传递给laravel 5.3中的路由

jQuery 在 Laravel 5 中无法正常工作

使用路由 Laravel 5.2 时访问资源时出错

php:为highcharts渲染javascript时,laravel慢视图渲染时间