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
Usare la parola chiave field per semplificare la scrittura di proprietà in C#
Importare repository da Bitbucket a GitHub Enterprise Cloud
Impostare automaticamente l'altezza del font tramite CSS
Supporto semplificato per le left join in Entity Framework 10
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
Utilizzo di CSS Scroll Snap per realizzare un carousel
Centralizzare gli endpoint AI Foundry con Azure API Management
Ridurre il reflow ottimizzando il CSS
Configurare automaticamente un webhook in Azure DevOps
Configuratione e utilizzo .NET Aspire CLI
Interazione con ReconnectModal in Blazor
Ottimizzare la content-visibility in CSS specificando lo spazio da occupato dall'area non renderizzata




