在Laravel 5中使用JavaScript的局部视图

5
我有多个部分的刀片文件,它们都需要一点 JavaScript。理想情况下,我希望部分加载所需的 JS,而普通的 JS 则不包括它。我知道你可以将所有内容加载到一个大的 JS 文件中,但我想知道是否有更优雅的解决方案。
我希望以下解决方案适用于多个文件(它适用于一个文件,但不适用于 n 个文件。由于 Blade 的渲染引擎,使用的是遇到的第一个部分文件)。 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 test.partial.one.blade.php

@section('content')

    <h1>One</h1>

@stop

@section('javascript')

    <script>Scripts from one</script>

@stop

partial test.partial.two.blade.php

@section('content')

    <h1>Two</h1>

@stop

@section('javascript')

    <script>Scripts from two</script>

@stop
1个回答

10

你的问题的解决方案是使用@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')

测试.partial.one.blade.php

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

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

测试.部分.两刀.php

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接