2013-06-12 17 views
8

Ho un'app che deve essere personalizzabile e un parametro è la radice dell'URL. L'app non è necessariamente alla radice del sito Web, vale a dire. può essere ospitato allo http://onedomain.com/index.html, dove lo appName sarebbe /, in quanto può essere ospitato allo http://anotherdomain.com/myapp/index.html, dove lo appName sarebbe /myapp/.Impostazioni globali in AngularJS

Ma ho bisogno di sapere il appName nel router, così nel configFn del mio modulo, per fare questo tipo di cose:

return $routeProvider.when(appName + "index.html", { 
    templateUrl: 'views/main.html', 
    controller: 'MainCtrl' 
}) 

Come ho più parametri, ho iniziato un servizio ho chiamato Settings ma non è possibile iniettare servizi durante la configurazione di un modulo ...

Cosa faresti?

Per la mia preoccupazione, ho iniziato a pensare a un fornitore personalizzato ma non sono sicuro che sia appropriato.

risposta

22

Per Settings informazioni correlate, io uso constant:

angular.module(...) 
    .constant("APPNAME", "/myapp/") 
    .controller(..., function(..., APPNAME) {...}) 

Ecco un simple plunker per illustrare costante.

+0

Ho scoperto 'costante' pochi minuti dopo che ho fatto la mia domanda. Ma il tuo esempio è molto più chiaro di Angular doc :) Grazie! –

2

Basta usare .when('/' e <base href="/myapp/" />.

+0

Grazie per il suggerimento. Mi sono dimenticato di questo. Prenderò una risposta @marcoseu poiché è fantastico in un modo più generico. –

+0

avere una costante generale per avere un "percorso di base" è solo folle – Ven

+0

Ovviamente, e spero, non sto solo facendo questo. Ho più costanti. –

Problemi correlati