Mi piacerebbe avere una "funzione globale" chiamata la prima volta che lancio la mia applicazione AngularJS o ogni volta che aggiorno la pagina.
Questa funzione chiamerà il mio server con $http.get()
per ottenere le informazioni globali necessarie per utilizzare la mia applicazione. Devo accedere a $rootScope
in questa funzione. Dopodiché, e solo dopo aver completato questa richiesta, sto utilizzando app.config
e $routeProvider.when()
per caricare il buon controller.
app.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/',
{
/**/
});
}]);
Non voglio che l'applicazione faccia qualcosa prima che questa azione sia finita. Quindi penso di dover usare una "risoluzione", ma non so davvero come usarla.
Qualche idea?
Grazie!
Non è * possibile eseguire una richiesta '$ http' prima di eseguire i blocchi' config'. I blocchi 'run' verranno eseguiti immediatamente * dopo * i blocchi' config', che è il punto più rapido in cui è possibile farlo. Inoltre, non si devono memorizzare i dati in '$ rootScope', ma in un servizio. Perché ritieni di aver bisogno delle informazioni prima di configurare il routing? –
Sto provando a creare un sito Web internazionale, multilingue. 1. Ottieni le traduzioni dal server (funzione Global!) E inserisci questi dati nel rootScope (tutte le traduzioni, per evitare che l'utente carichi le traduzioni ogni volta che cambia pagina, e per evitare che io elenchi tutte le parole chiave di cui ho bisogno per ogni Se hai un'altra idea per ottenere l'elenco di parole chiave utilizzate in un modello e caricare la traduzione dopo che il modello è stato caricato potrebbe essere utile) 2. Impostazione del routing 3. Esegui il controller, display. – alexmngn
Le traduzioni dovrebbero essere in un servizio di sicuro. Ci sono servizi là fuori se vuoi qualcosa fuori dalla scatola, come [questo] (https://github.com/PascalPrecht/ng-translate) - dovrebbe fornire ispirazione se non altro. Ma non hai ancora risposto perché hai bisogno delle traduzioni prima di impostare il routing. –