未捕获的ReferenceError:angular未定义app.js

时间:2016-03-26 21:00:31

标签: javascript angularjs pug bower materialize

我已经高低搜索了这个答案,但这个问题的每一个例子似乎都是相当独特的。也许一些额外的眼睛可以帮助阐明这一点。

我在控制台中收到错误:

  

app.js:23未捕获的ReferenceError:未定义角度

我的角度应用程序工作得很好,但是尽管我做了什么,这个错误仍然存​​在。我认为当我重新编写代码以遵循Todd Motto编写的样式指南时,会出现错误。无论如何,我的app.js如下:

(function() {

function config($routeProvider) {
    $routeProvider
        .when('/', {
            templateUrl: 'partial/main'
        })
        .when('/assignment/:id', {
            templateUrl: 'partial/assignment',
            controller: 'SubmissionController'
        }).otherwise({
            redirectTo: '/'
        });
}
angular
    .module('myApp', ['ngRoute', 'ui.materialize', 'ngAnimate'])
    .config(config);

})();

我的依赖关系如下:

doctype html
html(ng-app="myApp")
  head
    meta(charset="utf-8")
    meta(http-equiv="X-UA-Compatible", content="IE=edge")
    meta(name="viewport", content="width=device-width, initial-scale=1.0, maximum-scale=1.0")

    title= title    

    link(rel='icon', type='image/png', href='favicon.ico')

    // bower:css
    link(rel='stylesheet', href='../bower_components/animate.css/animate.css')
    // endbower

    script(src='js/app.js') styles
    link(rel="stylesheet", href="css/app.css") 
    link(href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet")

  body(ng-controller="AssignmentController")
    block content 

    //- lib js
    // bower:js
    script(src='../bower_components/jquery/dist/jquery.js')
    script(src='../bower_components/angular/angular.js')
    script(src='../bower_components/Materialize/bin/materialize.js')
    script(src='../bower_components/angular-route/angular-route.js')
    script(src='../bower_components/angular-animate/angular-animate.js')
    script(src='../bower_components/angular-materialize/src/angular-materialize.js')
    // endbower  

    //- app js 
    script(src='js/app.js')
    script(src='js/controllers.js')
    script(src='js/services.js')
    script(src='js/directives.js')        
    script(src='//localhost:35729/livereload.js')  

通过反复试验,我一次省略了一个依赖项。我已经尝试重新排列每个依赖项的加载顺序,我甚至尝试重新排列列出每个应用程序特定文件的顺序,但无济于事。

对此有何想法?

1 个答案:

答案 0 :(得分:0)

感谢@JJJ

“嗯,你正在加载app.js两次:在Angular加载之前一次在头部,在Angular之后第二次加入正文。第一个脚本抛出错误但应用程序正常运行,因为它运行时没有错误第二次加载的时间:“

_onEventClick: function(calEvent, jsEvent, view) {
        console.log(scope);
        let modal = Ext.get('modal');
        let html = `
            <div class="modal-content">
              <div class="modal-header">
                <span class="close">×</span>
                <h2>${calEvent.title}</h2>
              </div>
              <div class="modal-body">
                <p>Name: ${calEvent.title}</p>
                <p>Release Date: ${calEvent.start}</p>
                <p>Team: ${calEvent.team}</p>
              </div>
            </div>
        `;
        modal.setHTML(html);
        modal.setVisible(true);

        // closes modal when X close button is clicked
        $('.close').click(function() {
            let modal = Ext.get('modal');
            modal.setVisible(false);
        });
    }