Угловая зависимость встраивания значения внутри модуля .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
})