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
Creare un file Zip partendo da uno stream sfruttando le classi del namespace System.IO.Compression
Configurare OpenAI in .NET Aspire
Utilizzare il top layer in HTML
Utilizzo del persistent state di Blazor nel prerendering
Creare comandi nella dashboard .NET Aspire
Referenziare un package NuGet in una file based app .NET
Gestione dei codeowners in GitHub
Evitare il cache poisoning nei workflow di GitHub
Validare i dati di una colonna JSON in SQL Server
Introduzione a GitHub Copilot CLI
Creare una file based app con C#
Stop alle password con Azure Managed Identity


