Iniezione delle dipendenze AngularJS di valore all’interno di module.config

Cercando di impostare il valore di alcuni helper nel modulo. Provato con servizio e valore e non ha aiutato:

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

Cosa sto facendo di sbagliato?

Il problema è che si sta tentando di iniettare un helpers oggetti valore nel blocco di configurazione di un modulo AngularJS e questo non è consentito. È ansible iniettare solo costanti e provider nel blocco di configurazione.

La documentazione di AngularJS (sezione: “Caricamento e dipendenze del modulo”) fornisce una panoramica di ciò:

Un modulo è una raccolta di blocchi di configurazione e di esecuzione che vengono applicati all’applicazione durante il processo di bootstrap. Nella sua forma più semplice il modulo consiste nella raccolta di due tipi di blocchi:

Blocchi di configurazione : vengono eseguiti durante le registrazioni dei provider e la fase di configurazione. Solo i provider e le costanti possono essere iniettati in blocchi di configurazione. Questo serve a prevenire l’istanziazione accidentale dei servizi prima che siano stati completamente configurati.

Esegui blocchi : vengono eseguiti dopo la creazione dell’iniettore e utilizzati per avviare l’applicazione. Solo istanze e costanti possono essere iniettate in blocchi di esecuzione. Questo serve a prevenire un’ulteriore configurazione del sistema durante l’esecuzione dell’applicazione.

Invece di .value puoi usare. .constant . Quindi puoi usare il tuo servizio nella parte .config .

Il tuo metodo di supporto è chiamato templatePath e lo stai chiamando all’interno di .config come getTemplatePath . Non dovrebbe essere:

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