2016-12-08 7 views
-1

こんにちは、これは私の最初の質問です。 laravelでjavascriptを整理する方法に問題があります。 私はすべてのページ、いくつかのページに含まれるべき公開Javaスクリプト、または特定のスクリプトを表示します。 私のアプローチは、ビュー固有のスクリプトをラッピングする{if}ステートメントで埋め尽くされた別のインクルードファイルです。ビューにページ名を渡して、適切なスクリプトをロードします。 laravelビュー固有のjavascriptコードを管理する方法

この

は、URLからページ名を取得するためのルーティングコードです:{!{ではない完全なコード}}

Route::get('project/{section?}', '[email protected]'); 

これはコントローラ

class ProjectController extends Controller 
    { 
     // 
     public function index($section = 'pitch') 
     { 
      $page = 'project'; 
      if ($section == 'pitch') { 
       return view('pages.project.pitch', compact('page', 'section')); 
      } elseif ($section == 'business_details') { 
       return view('pages.project.businessDetails', compact('page', 'section')); 
      } elseif ($section == 'marketing_sales') { 
       return view('pages.project.marketingSales', compact('page', 'section')); 
      } elseif ($section == 'staff') { 
       return view('pages.project.staff', compact('page', 'section')); 
      } else { 
       return view('pages.project.pitch', compact('page', 'section')); 
      } 
     } 
    } 

であり、これはサンプルです私の含まれているscripts.blade.php

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" 
     integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" 
     crossorigin="anonymous"></script> 
@if(isset($page) && $page == 'explore') 
    <script type="text/javascript" 
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyATVGl-q2F19QoSxS-h1amZLEQ0hzTU3sQ"></script> 
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
@elseif(isset($page) && $page == 'home') 
@elseif(isset($page) && $page == 'project' && $section == 'pitch') 
    <script src="/js/pie-chart.js"></script> 
@elseif(isset($page) && $page == 'project' && $section == 'business_details') 
    <script type="text/javascript" 
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyATVGl-q2F19QoSxS-h1amZLEQ0hzTU3sQ"></script> 
@elseif(isset($page) && $page == 'project' && $section == 'marketing_sales') 
    <script src="/js/pie-chart.js"></script> 

@elseif(isset($page) && $page == 'project' && $section == 'staff') 
    <script src="https://cdn.rawgit.com/nnattawat/flip/master/dist/jquery.flip.min.js"></script> 
@endif 

このアプローチは使い果たされているように感じますそこ ? urxのヘルプの事前に

+1

は異なるレイアウトを追加し、あなたに延びる – Komal

+0

私のレイアウトは良い組織化されているブレードが、私は推測します私は、あなたのコメントのために、別々に、すべてのビューで私のスクリプトを@yieldすべきであることを複雑にしていました♥ –

答えて

0

@yield('js-import') 

そして、あなたのビューで(exempleため探る)

@section('js-import') 
    <script type="text/javascript" 
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyATVGl-q2F19QoSxS-h1amZLEQ0hzTU3sQ"></script> 
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
@endsection 
+0

私はそれを考えていたり、それを整理していたと思います。 –

関連する問題