Uncaught ReferenceError: angular не определен app.js

Я искал ответ на этот вопрос со всех сторон, но каждый случай этой проблемы кажется довольно уникальным. Возможно, пара дополнительных пар глаз поможет пролить свет на это.

В консоли появляется сообщение об ошибке:

app.js: 23 Uncaught ReferenceError: angular не определен

Мое приложение angular работает нормально, но эта ошибка продолжает сохраняться, несмотря на то, что я делаю. Я думаю, что ошибка возникла, когда я реструктурировал свой код, чтобы следовать руководству по стилю, написанному Тоддом Мотто. В любом случае мой 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')  

Путем проб и ошибок я пропустил каждую зависимость по очереди. Я попытался изменить порядок, в котором загружается каждая зависимость, и даже попытался изменить порядок, в котором перечислены все файлы моего приложения, но безрезультатно.

Есть мысли по этому поводу?


person j_quelly    schedule 26.03.2016    source источник
comment
Вы уверены, что Angular загружается? Похоже, он не загружается.   -  person Léo Lam    schedule 27.03.2016
comment
@ LéoLam Через мою консоль я смог подтвердить, что каждая зависимость загружается, просмотрев исходный код и увидев, что нет ошибок 500 или 404. В дополнение к этому мое приложение работает нормально, но эта ошибка продолжает сохраняться.   -  person j_quelly    schedule 27.03.2016
comment
Из какой строки кода в вашем приложении возникает ошибка?   -  person mindparse    schedule 27.03.2016
comment
@mindparse app.js: 22 Uncaught ReferenceError: angular не определен (анонимная функция) @ app.js: 22 (анонимная функция) @ app.js: 27 ---- ›angular .module ('myApp', ['ngRoute ',' ui.materialize ',' ngAnimate ']) .config (конфигурация);   -  person j_quelly    schedule 27.03.2016
comment
Ну, вы загружаете app.js дважды: один раз в голове до загрузки Angular, а второй раз в теле после Angular. Первый скрипт выдает ошибку, но приложение работает, потому что при второй загрузке оно запускается без ошибок.   -  person JJJ    schedule 27.03.2016
comment
Ух ты! Хороший глаз @Juhana Я обвиню в этом ворчания. Спасибо!   -  person j_quelly    schedule 27.03.2016


Ответы (1)


Спасибо @JJJ

"Ну, вы загружаете app.js дважды: один раз в голове перед загрузкой Angular, а второй раз в теле после Angular. Первый скрипт выдает ошибку, но приложение работает, потому что во второй раз оно запускается без ошибок. : "

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

    // - [FIX] removed: script(src='js/app.js')         
    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')  
person j_quelly    schedule 04.11.2016