ejemplos - angularjs pdf
AngularJS inyección de dependencia de valor dentro de module.config (3)
Tratando de configurar algún valor de ayudantes para el módulo. Probé con servicio y 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á intentando inyectar un asistente de objetos de 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 documentation AngularJS (sección: "Módulo de carga y dependencias") ofrece una visión 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 consta de una colección de dos tipos de bloques:
Bloques de configuración : ejecútese durante los registros del proveedor y la fase de configuración. Solo los proveedores y las constantes se pueden inyectar en los bloques de configuración. Esto es para evitar la creación accidental de instancias de servicios antes de que se hayan configurado por completo.
Ejecutar bloques : ejecútese después de crear el inyector y se utilizan para iniciar la aplicación. Solo se pueden inyectar instancias y constantes en 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 puedes usar tu servicio en la parte .config
.
Su método auxiliar se llama templatePath
y lo está llamando dentro de .config
como getTemplatePath
. ¿No debería ser?
when(''/'', {
templateUrl: helpers.templatePath(''dashboard''),
controller: DashboardController
})