Partial views with JavaScript in Laravel 5

南笙酒味 提交于 2019-12-12 07:14:06

问题


I have multiple partial blade files that all require just a little bit of JavaScript. Ideally I'd like the partial to load the JS it needs and the normal JS wouldn't include it. I know you can load it all into one big JS file, but I am wondering if there is a way to have a more elegant solution.

I'd like the solution below to work for multiple files (it works for one, but not n. The first partial blade encounters is used due to blade's rendering engine).

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:


The solution to your problem is the @parent directive, which you have to use in your javascript sections.

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

For further reference: http://laravel.com/docs/5.0/templates



来源:https://stackoverflow.com/questions/30271376/partial-views-with-javascript-in-laravel-5

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!