Angular конфигурация модуля не вызвана
Я пытаюсь поднять голову вокруг AngularJS и столкнулся с проблемой.
var myApp = angular.module('myApp', ['myApp.services']);
myApp.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
console.log('Configuring module "myApp"');
$routeProvider.when('/dashboard', {templateUrl: 'partial/dashboard', controller: DashboardController});
$routeProvider.when('/menu', {templateUrl: 'partial/other', controller: OtherController});
$routeProvider.otherwise({redirectTo: '/dashboard'});
$locationProvider.html5Mode(true);
}]);
Насколько я понимаю, функция конфигурации должна вызываться, когда модуль загружается. Но это не так!
У меня есть директива ng-app="myApp"
на теге <body>
. И скрипты, загруженные непосредственно перед тегом закрытия тега в правильном порядке (насколько это важно).
<script src="angular.js"></script>
<script src="app.js"></script>
<script src="services.js"></script>
<script src="controllers.js"></script>
</body>
Я уверен, что я должен упустить что-то тривиальное. На консоли должно быть напечатано сообщение. Но он остается пустым без каких-либо ошибок или предупреждений.
Части приложения, не зависящие от маршрутов, работают очень хорошо.
Обновление: упрощенная версия моего service.js
'use strict';
angular.module('myApp', function ($provide) {
$provide.factory('myService', function ($http) {
var service = function () {
...
service implementation
...
};
return new service();
});
});
Ответы
Ответ 1
Кажется, что метод, который я использовал для определения службы, переопределял мой модуль myApp
.
Это верхняя строка
angular.module('myApp', function ($provide) ...
Этот код просто переопределяет модуль myApp
и добавляет функцию для его настройки.
Я реорганизовал service.js на эту упрощенную версию и начал работать.
var myApp = angular.module('myApp');
myApp.factory('securityService', function () {
return SomeFancyServiceObject();
});
Ответ 2
Мне не хватало ng-app = "myApp" внутри моего тега html - и я это понял, читая ваш вопрос: -)
Ответ 3
Я обычно вижу маршрутизацию, применяемую путем их объединения:
$routeProvider
.when('/dashboard', {templateUrl: 'partial/dashboard', controller: DashboardController})
.when('/menu', {templateUrl: 'partial/other', controller: OtherController})
.otherwise({redirectTo: '/dashboard'});
Не могу понять, почему вы не работаете, но может стоить того.