Laravel 5 中 JavaScript 的部分视图
Partial views with JavaScript in Laravel 5
我有多个部分 blade 文件,它们都只需要一点点 JavaScript。理想情况下,我希望部分加载它需要的 JS,而普通的 JS 不会包含它。我知道你可以将它全部加载到一个大的 JS 文件中,但我想知道是否有一种方法可以得到更优雅的解决方案。
我希望下面的解决方案适用于多个文件(它适用于一个文件,但不适用于 n 个。由于 blade 的渲染引擎,第一个 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
部分test.partial.one.blade.php
@section('content')
<h1>One</h1>
@stop
@section('javascript')
<script>Scripts from one</script>
@stop
部分test.partial.two.blade.php
@section('content')
<h1>Two</h1>
@stop
@section('javascript')
<script>Scripts from two</script>
@stop
您的问题的解决方案是 @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
我有多个部分 blade 文件,它们都只需要一点点 JavaScript。理想情况下,我希望部分加载它需要的 JS,而普通的 JS 不会包含它。我知道你可以将它全部加载到一个大的 JS 文件中,但我想知道是否有一种方法可以得到更优雅的解决方案。
我希望下面的解决方案适用于多个文件(它适用于一个文件,但不适用于 n 个。由于 blade 的渲染引擎,第一个 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
部分test.partial.one.blade.php
@section('content')
<h1>One</h1>
@stop
@section('javascript')
<script>Scripts from one</script>
@stop
部分test.partial.two.blade.php
@section('content')
<h1>Two</h1>
@stop
@section('javascript')
<script>Scripts from two</script>
@stop
您的问题的解决方案是 @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