Подтвердить что ты не робот

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();
    });
});
4b9b3361

Ответ 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'});

Не могу понять, почему вы не работаете, но может стоить того.