Inyección de valor de dependencia AngularJS dentro de module.config

Tratando de configurar algunos valores auxiliares para el módulo. Intenté con el servicio y el valor y no ayudó:

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' }); }]); 

¿Que estoy haciendo mal?

El problema es que estás intentando inyectar un objeto helpers valor en el bloque de configuración de un módulo AngularJS y esto no está permitido. Solo puede inyectar constantes y proveedores en el bloque de configuración.

La documentación de AngularJS (sección: “Módulo de carga y dependencias”) da una idea de esto:

Un módulo es una colección de bloques de configuración y ejecución que se aplican a la aplicación durante el proceso de arranque. En su forma más simple, el módulo consiste en una colección de dos tipos de bloques:

Bloques de configuración : se ejecutan durante los registros del proveedor y la fase de configuración. Solo proveedores y constantes se pueden inyectar en bloques de configuración. Esto es para evitar la instanciación accidental de servicios antes de que se hayan configurado completamente.

Ejecutar bloques : se ejecuta después de que se crea el inyector y se utilizan para reiniciar la aplicación. Solo las instancias y las constantes se pueden inyectar en los bloques de ejecución. Esto es para evitar una mayor configuración del sistema durante el tiempo de ejecución de la aplicación.

En lugar de .value puedes usar .constant . Entonces puede usar su servicio en la parte .config .

Su método de ayuda se llama templatePath y lo está llamando dentro de .config como getTemplatePath . No debería ser:

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