AngularJS 1.4.8 $ инжектор: ошибка модуля Modulerr
Я относительно новичок в AngularJS и получаю "Uncaught Error: [$injector:modulerr]". Кроме того, я получаю несколько синтаксических ошибок в первой строке различных файлов js.
Кажется, я не могу исправить ситуацию, есть мысли?
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User CRM</title>
<!-- FOR ANGULAR ROUTING -->
<base href="/">
<!-- CSS -->
<!-- load bootstrap from CDN and custom CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.4.0/animate.min.css">
<link rel="stylesheet" href="public/assets/css/style.css">
<!-- JS -->
<!-- load angular and angular-route via CDN -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-route.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-animate.js"></script>
<!-- controllers -->
<script src="public/app/controllers/mainCtrl.js"></script>
<script src="public/app/controllers/userCtrl.js"></script>
<!-- services -->
<script src="public/app/services/authService.js"></script>
<script src="public/app/services/userService.js"></script>
<!-- main Angular app files -->
<script src="public/app/app.js"></script>
<script src="public/app/app.routes.js"></script>
</head>
<body ng-app="userApp" ng-controller="mainController as main">
<!-- NAVBAR -->
<header>
<div class = "navbar navbar-inverse" ng-if="main.loggedIn">
<div class="container">
<div class="navbar-header">
<a href="/" class="navbar-brand"><span class="glyphicon glyphicon-fire text-danger"></span> User CRM</a>
</div>
<ul class="nav navbar-nav">
<li><a href="/users"><span class="glyphicon glyphicon-user"></span> Users</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li ng-if="!main.loggedIn"><a href="/login">Login</a></li>
<li ng-if="main.loggedIn" class="navbar-text">Hello {{ main.user.name }}!</li>
<li ng-if="main.loggedIn"><a href="#" ng-click="main.doLogout()">Logout</a></li>
</ul>
</div>
</div>
</header>
<main class="container">
<!-- ANGULAR VIEWS -->
<div ng-view></div>
</main>
</body>
</html>
app.js
angular.module('userApp', [
'ngAnimate', // add animations to our Angular Directives
'app.routes', // routing for our application
'authService', // service file
'mainCtrl', // main view controller
'userCtrl', // controller for user management pages
'userService' //service file
]);
app.routes.js
angular.module('app.routes', ['ngRoute'])
.config(function($routeProvider, $locationProvider) {
$routeProvider
// home page route
.when('/', {
templateUrl: 'app/views/pages/home.html'
})
// login page
.when('/login', {
templateUrl: 'app/views/pages/login.html',
controller: 'mainController',
controllerAs: 'login'
})
// get rid of the hash in the URL
$locationProvider.html5Mode(true);
});
2 ответа
Я загрузил модуль angular.js вместо минимизированной версии, чтобы получить более подробное сообщение об ошибке и получил уведомление об ошибке, что userApp не было определено. Оказывается, проблема заключается в том, что другие зависимости не определены должным образом. Итак, я удалил все зависимости, кроме ngAnimate и app.routes, а также удалил ng-контроллер "mainController as main" из файла index.html. Кажется, это решило проблему, однако теперь мне нужно найти свою ошибку в файле mainCtrl.js, чтобы я мог использовать mainController.
Спасибо за помощь!
Попробуйте использовать обновленную версию модуля angular-animate.
Документация AngularJS для v1.4.8 предлагает несколько вариантов, если вы загружаете скрипты через CDN. Например, попробуйте это: https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.js