【问题标题】:laravel How to manage view specific javascript codelaravel 如何管理查看特定的javascript代码
【发布时间】:2017-04-23 14:34:20
【问题描述】:

大家好,这是我的第一个问题。 我在如何使用 laravel 组织我的 javascript 时遇到了麻烦。 我有一些应该包含在每个页面中的公共 java 脚本,以及一些页面或查看特定脚本。 我现在的方法是一个单独的包含文件,其中填充了包含视图特定脚本的 {if} 语句,然后我将页面名称传递给视图以加载适当的脚本,它看起来像这样。

这是从 url 获取页面名称的路由代码:

Route::get('project/{section?}', 'ProjectController@index');

这是控制器

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

这种方法令人筋疲力尽,感觉有更好的方法,是吗? 感谢您提前提供帮助

【问题讨论】:

  • 在刀片中添加不同的布局和扩展
  • 我的布局组织得很好,但我想我很复杂我应该在每个视图中分别@yield 我的脚本,谢谢你的评论♥

标签: javascript php laravel blade


【解决方案1】:

在您的脚本视图中:

@yield('js-import')

在你看来(以探索为例)

@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

【讨论】:

  • thanx 我想我想太多或组织太多了。
【解决方案2】:

我建议在您的模板中设置仅用于 javascript 的部分,然后在每个视图中将代码放置在该部分中。 https://laravel.com/docs/5.3/blade#template-inheritance

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    相关资源
    最近更新 更多