在默认模板中加载的脚本在laravel 5中的视图中不起作用

时间:2015-10-23 11:07:55

标签: javascript php jquery laravel-5

为什么我的js在edit.blade.php视图中不能正常工作。我的观点结构如下:

文件名:profile_main.blade.php

 @extends('layouts.main')

    @section('head')

    @yield('style') 

    @stop

    <!-- Available at the footer of page before body tag closes --> 

@section('scripts')
        <script src="{{ URL::asset('js/jquery-ui-1.11.4.custom/jquery-ui.js') }}"></script>
        <script src="{{ URL::asset('js/search.js') }}"></script>
        <script src="{{ URL::asset('js/application.js') }}"></script>
        <script type="text/javascript">
            $.ajaxSetup({
                headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
            });
        </script>
    @stop

文件名:training_main.blade.php

@extends('layouts.profile_main')

@section('style')
    <link href="{{ URL::asset('css/application/index.css') }}" rel="stylesheet">
@stop

@section('body')
    <div id="content-header">
        <img alt="user_icon" src="{{ asset('images/general/admission_page_logo.jpg') }}" class="img-responsive"/>
        <h1>@yield('page_heading')</h1>
        <h3>@yield('page_desc')</h3>
    </div>
    <hr class="header_underline"/>
    @yield('training_body')
@stop

文件名:edit.blade.php

@extends('trainings.training_main')

@section('page_heading')
    Edit Training Details
@stop
@section('page_desc')
    General
@stop

@section('training_body')

@stop

我在application.js中有一些jquery函数。我注意到这些函数在edit.blade.php中不起作用。例如

文件名:application.js

$("document").ready(function() { alert('Great') });

加载edit.blade.php视图时不会发出警报。但是当我查看页面源代码时,所有内容似乎都可以正常加载:

<!-- Javascript -->
    <script src="http://localhost:8000/js/jquery-1.11.3.js"></script>
    <script src="http://localhost:8000/js/bootstrap.min.js"></script>
    <script src="http://localhost:8000/js/main.js"></script>
        <script src="http://localhost:8000/js/jquery-ui-1.11.4.custom/jquery-ui.js"></script>
    <script src="http://localhost:8000/js/search.js"></script>
    <script src="http://localhost:8000/js/application.js"></script>
    <script type="text/javascript">
        $.ajaxSetup({
            headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
        });
    </script>
    </body>

这可能是什么问题?我错过了什么?

2 个答案:

答案 0 :(得分:0)

问题在于我的js。我的js看起来像这样:

$("document").ready(function() {

    limitCharacters();
    $("#edit_academic_form").on('submit', updateAcademic);
    $("#edit_training_form").on('submit', updateTraining);
}

函数limitCharacters()有一些语法错误,因此可以防止它下面的代码被调用。我解决了该功能的问题,现在一切正常。

答案 1 :(得分:0)

查看终端上的php artisan route:list,确认 在'编辑'URI中,将显示:

home/{home}/edit

为什么你的js没有运行,解决问题你可以在edit.blade.php中重写js路径。

或者,如果您有其他解决方案,请告诉我。感谢