2014-10-26 7 views
0

я пытаюсь написать угловую приложение с использованием лучших кода практики, и я получил это:Угловой модуль ошибки

index.html файл содержит:

<!DOCTYPE html> 
<html ng-app='hrsApp'> 
<head> 
<title>Hrs app</title> 
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> 
<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
</head> 
<body ng-controller="homeCtrl"> 
<div class='container'> 
    <div ng-view></div> 
</div> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular.min.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular-route.min.js"></script> 
<script src='app.js'></script> 
<script src='js/controllers/homeCtrl.js'></script> 
<script src='js/controllers/avCtrl.js'></script> 
</body> 
</html> 

Основной файл: app.js:

angular.module('home', []); 
angular.module('av', []); 

// Declare app level module which depends on filters, and services 
angular.module('hrsApp', [ 
'hrsApp.controllers', 
'hrsApp.services', 
'hrsApp.directives', 
'hrsApp.filters', 

// AngularJS 
'ngRoute', 

// All modules are being loaded here but EMPTY - they will be filled with controllers and  functionality 
'home', 
'av' 
]); 

// configure our routes 
angular.module('hrsApp').config([ 
'$routeProvider', 
function ($routeProvider) { 
    'use strict'; 

    $routeProvider 
     // route for the home page 
     .when('/', { 
      templateUrl: 'views/home.html', 
      controller: 'homeCtrl' 
     }) 

     // route for the about page 
     .when('/av', { 
      templateUrl: 'views/av.html', 
      controller: 'avCtrl' 
     }) 

     // route for the contact page 
     .otherwise({ 
      redirectTo: '/' 
     }); 
} 
]); 

Затем я добавил домашний контроллер:

/*global angular*/ 

angular.module('home').controller('homeCtrl', [ 
'$scope', 
function ($scope) { 
    'use strict'; 

    $scope._init = function() { 
     $scope.message = "welcome to Home Ctrl"; 
    }; 

    // DESTRUCTOR 
    $scope.$on('$destroy', function() { 

    }); 

    // Run constructor 
    $scope._init(); 

    $scope.log('info', '[HomeCtrl] initialized'); 
} 
]); 

и домой шаблон, который на данный момент содержит только привязка к переменной сообщения:

<div>{{message}}</div> 

Когда я пытаюсь запустить приложение я получил: Uncaught Ошибка: [$ Инжектор: modulerr]? http://errors.angularjs.org/1.3.0/ $ форсунка/modulerr p0 = hrsApp & p1 = Ошибка% 3A% ... googleapis.com% 2Fajax% 2Flibs% 2Fangularjs% 2F1.3.0% 2Fangular.min.js% 3A18% 3A3) angular.js: 38

Любая идея, что я сделал не так?

+2

Вы можете поставить полный URL ошибки? (открыть в браузере, а затем ctrlc ctrlv) –

+0

просто включить 'app.js' после' homeCtrl.js' и 'avCtrl.js' – Grundy

+0

, где вы определяете следующие модули:' 'hrsApp.controllers ', ' hrsApp.services ' , 'hrsApp.directives', 'hrsApp.filters'' – Grundy

ответ

1

Из вашего кода я вижу, что вы ввели модули, которые вы не объявили.

в порядке TODO, так что вы должны добавить следующие строки кода:

angular.module('hrsApp.controllers',[]); 
angular.module('hrsApp.services',[]); 
angular.module('hrsApp.directives',[]); 
angular.module('hrsApp.filters',[]); 
+0

Вы правы, спасибо, но неэтично проголосовать за вопрос, когда @Грунди уже дает правильный ответ перед вами. – Teodor

Смежные вопросы