Угловая зависимость встраивания значения внутри модуля .config

Попытка настроить некоторое значение помощников для модуля. Пробовал с обслуживанием и стоимостью, и это не помогло:

var finance = angular.module('finance', ['finance.services'])
    .value("helpers", {
        templatePath: function (name) {
            return '/areas/scripts/finance/templates/' + name + '/index.html';
        }
    })
    .config(['$routeProvider', 'helpers', function ($routeProvider, helpers) {
    $routeProvider.
        when('/', {
            templateUrl: helpers.getTemplatePath('dashboard'),
            controller: DashboardController
        })            
        .when('/people', {
            templateUrl: '/areas/scripts/app/people/index.html',
            controller: PeopleController
        })
        .otherwise({
            redirectTo: '/dashboard'
        });
}]);

Что я делаю неправильно?

Ответ 1

Проблема заключается в том, что вы пытаетесь ввести объект значения helpers в блок конфигурации модуля AngularJS, и это недопустимо. Вы можете вводить константы и провайдеры в блок конфигурации.

Документация AngularJS (раздел "Загрузка модуля и зависимости" ) дает представление об этом:

Модуль представляет собой набор конфигураций и блоков запуска, которые получают применяется к приложению во время процесса начальной загрузки. В своем Простейшая форма модуля состоит из набора двух видов блоков:

Блоки конфигурации - выполняются во время регистрации провайдера и фазе конфигурации. Могут быть введены только поставщики и константы в конфигурационные блоки. Это делается для предотвращения случайного создания экземпляра услуг, прежде чем они будут полностью настроены.

Запустить блоки - получить выполняются после создания инжектора и используются для запуска выражение. Только экземпляры и константы могут быть введены в действие блоки. Это необходимо для предотвращения дальнейшей конфигурации системы во время время выполнения приложения.

Ответ 2

Вместо .value вы можете использовать .constant. Затем вы можете использовать свою услугу в разделе .config.

Ответ 3

Ваш вспомогательный метод называется templatePath, и вы вызываете его внутри .config как getTemplatePath. Не должно быть:

when('/', {
            templateUrl: helpers.templatePath('dashboard'),
            controller: DashboardController
     })