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
Esporre un server MCP con Azure API Management
Eliminare una project wiki di Azure DevOps
Fornire parametri ad un Web component HTML
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Eseguire script pre e post esecuzione di un workflow di GitHub
Utilizzare Intersect e Except per filtrare set di dati in TSql
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Ridurre il reflow cambiando il CSS
Migliorare l'organizzazione delle risorse con Azure Policy
Scrivere selettori CSS più semplici ed efficienti con :is()
Creare una libreria CSS universale: Cards
I più letti di oggi
- Costruire il web del futuro con HTML5: la nostra guida rapida
- Rilasciato il Web Standards Update for Microsoft Visual Studio 2010 SP1
- Visual Studio 2019 sarà disponibile a partire dal 2 Aprile
- ASP.NET Starter Kit in italiano
- Eseguire query con LINQ to SQL
- Le funzionalità di drag and drop di Silverlight 4.0
- Invalidare un token JWT prima della scadenza con ASP.NET Core Identity
- Configurare OpenAI in .NET Aspire
- La gestione degli errori con ASP 3
- Tutorial .NET Framework 3.5