Внедрение зависимостей в AngularJS значения внутри module.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'
});
}]);
Что я делаю не так?
3 ответа
Проблема в том, что вы пытаетесь ввести объект значения helpers
в блоке конфигурации модуля AngularJS, и это не разрешено. Вы можете вводить только константы и провайдеры в блоке конфигурации.
Документация AngularJS (раздел: "Загрузка и зависимость модуля") дает представление об этом:
Модуль - это набор блоков конфигурации и запуска, которые применяются к приложению во время процесса начальной загрузки. В простейшем виде модуль состоит из двух блоков:
Блоки конфигурации - выполняются на этапе регистрации и настройки провайдера. Только провайдеры и константы могут быть введены в блоки конфигурации. Это необходимо для предотвращения случайного создания служб до их полной настройки.
Блоки запуска - выполняются после создания инжектора и используются для запуска приложения. Только экземпляры и константы могут быть введены в блоки выполнения. Это должно предотвратить дальнейшую настройку системы во время выполнения приложения.
Вместо .value
ты можешь использовать .constant
, Тогда вы можете использовать свой сервис в .config
часть.
Ваш вспомогательный метод называется templatePath
и вы звоните внутри .config
как getTemplatePath
, Не должно ли это быть:
when('/', {
templateUrl: helpers.templatePath('dashboard'),
controller: DashboardController
})