No, non è possibile iniettare un servizio nel provider stesso. L'inserimento di un servizio nel metodo $ get di un provider è uguale all'immissione di un servizio in un factory, ma non è possibile inserirlo direttamente nella funzione provider.
La differenza tra $ get e il provider stesso è che il provider viene eseguito durante il module loading phase mentre il $ get viene eseguito durante l'istanziazione del servizio che si sta fornendo.
Ciò implica che non è possibile utilizzare alcun servizio durante la fase di caricamento/configurazione del modulo dei moduli. Questo è tutto ciò che viene eseguito all'interno dei blocchi di configurazione, ad esempio quando si definiscono percorsi o stati delle app, non è possibile usufruire di alcun servizio.
L'unica altra cosa che è possibile iniettare nei blocchi di configurazione oltre ai provider sono costanti.
Si potrebbe fare qualcosa come suggerito da IgrCndd. Ma se hai bisogno di consumare il provider in un blocco di configurazione, che è lo scopo del provider, dopotutto, non avrai i tuoi valori iniettati fino a molto dopo. Quindi non funzionerà a meno che non si faccia un brutto scherzo usando le promesse.
Further reading on injectables
Grazie. Significa che non possiamo usare $ http (o altri servizi) al di fuori di $ get? – Chung
No, è possibile utilizzare $ http ovunque sia possibile iniettare un servizio. $ get è solo uno di questi. –
e come renderlo accettabile? –