Получение $injector:modulerr после включения ['ngRoute']

Возникла ошибка $injector:modulerr после включения ngRoute. Использование AngularJS 1.2.26


var app = angular.module('myApp', ['ngRoute']);
app.config(function ($routeProvider) {
    $routeProvider.when('/', {controller: indexController1, templateURL: 'index1.html'});
    $routeProvider.when('/view/:id', {controller: indexController2, templateURL: 'index2.html'});
    $routeProvider.otherwise({redirectTo: '/'});
});
app.controller('indexController1', function ($scope) { .... }
app.controller('indexController2', function ($scope, $routeParams) { .... }

HTML-шаблон

<html ng-app="myApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular-route.min.js"></script>
<script src="app.js">
</head>
<body>
<div ng-view></div>
</body>
</html>


person KaA6438    schedule 12.10.2014    source источник
comment
Опубликуйте полную трассировку стека ошибки. Не используйте уменьшенные файлы во время разработки. И подумайте об этом: вы определили переменные с именами indexController1 и indexController2? Тогда как вы можете их использовать?   -  person JB Nizet    schedule 12.10.2014


Ответы (1)


В вашем коде есть некоторые проблемы:

.config

Вы должны использовать вложенный .when вместо того, чтобы снова определить $routeProvider

Имя контроллеров в кавычках

Отсутствует закрытие ); в контроллерах

var app = angular.module('myApp', ['ngRoute']);

app.config(function ($routeProvider) {
    $routeProvider
     .when('/', {
         templateUrl: 'index1.html',
         controller: 'indexController1'
     })
     .when('/view/:id', {
         templateUrl: 'index2.html',
         controller: 'indexController2'
     })
     .otherwise({
         redirectTo: '/'
     });
});

app.controller('indexController1', function ($scope) {

});

app.controller('indexController2', function ($scope, $routeParams) {

});

HTML

Отсутствует закрывающий тег </script>.

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular-route.min.js"></script>
<script src="app.js"></script>

Проверьте здесь рабочий пример ngRoute

person blfuentes    schedule 12.10.2014
comment
Большое спасибо. После изменения кода, как вы написали, у меня все еще была проблема, но потом я посмотрел код в Plunker, который вы прислали, и обнаружил основную проблему. Проблема заключалась в том, что в routeProvider я писал имя контроллера (ссылаясь на функцию), а не в строке (это должна быть строка «controllerName»). - person KaA6438; 12.10.2014
comment
Да. Вот и написал я свой ответ. Отметьте как ответ, если это помогло решить проблему. - person blfuentes; 12.10.2014