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
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With