Quando creiamo un progetto con Angular-CLI, la struttura che viene generata contiene la variabile environment all'interno della quale andiamo a mettere i dati di configurazione. Quando poi creiamo la build, questa variabile viene inclusa nel pacchetto di output e non possiamo modificarla. Questo significa che quando dobbiamo modificare un parametro di configrazione della nostra applicazione dobbiamo eseguire un nuovo deploy. Spesso questa strada è impraticabile, quidni dobbiamo ricorrere ad altri meccanismi per recuperare i parametri di configurazione. La tecnica più usata è quella di ricorrere ad una chiamata ajax per scaricare un json.
Quest'operazione in genere viene eseguita allo startup ed è necessario che Angular ne aspetti la conclusione prima di avviare l'applicazione. Grazie al token di injection APP_INITIALIZERS possiamo iniettare il nostro codice all'interno della pipeline di startup e, restituendo una Promise o un Observable, fare in modo che la pipeline non prosegua fino alla risoluzione della promise o fino al primo messaggio dall'observable.
@NgModule({ providers: [ { provide: APP_INITIALIZER, useFactory: initialize, multi: true, deps: [HttpClient] } ] function initialize(http: HttpClient) { return () => { return http.get<Configuration>("/config.json") .map(c => /*Processa configurazione*/); } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Utilizzare la session affinity con Azure Container Apps
Eseguire operazioni sui blob con Azure Storage Actions
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Creazione di componenti personalizzati in React.js con Tailwind CSS
Usare lo spread operator con i collection initializer in C#
Utilizzare i primary constructor in C#
Gestire i null nelle reactive form tipizzate di Angular
Gestire undefined e partial nelle reactive forms di Angular
Implementare il throttling in ASP.NET Core
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Sfruttare MQTT in cloud e in edge con Azure Event Grid
I più letti di oggi
- Vuoi incontrare Bill Gates? Viaggia con ASPItalia.com!
- Customizzare il pager del DataGrid
- Stabilire un collegamento VPN tra una Web App e una Virtual Network
- Documentare ASP.NET Web API con Swagger
- Usare i servizi REST di BING per ottenere informazioni sulla posizione dell'utente
- Visual Studio 2005 CTP May