Quado creiamo un servizio e vogliamo che sia iniettato dal motore di dependency injection di Angular, dobbiamo aggiungere il servizio al sistema di dependency injection. Fino alla versione 5, l'aggiunta veniva fatta nel modulo in cui il servizio era dichiarato attraverso la sezione providers del decorator NgModule. Questa tecnica, ancora perfettamente valida, ha il problema di non permettere il tree-shaking e quindi non permette di eliminare codice inutile dal pacchetto di output della build.
A partire da Angular 6, l'aggiunta del servizio al motore di dependency injection viene fatta direttamente dal servizio tramite il decorator Injectable importando la proprietà providedIn al valore 'root' come mostrato nell'esempio.
@Injectable({ providedIn: 'root' }) export class MyService { }
In questo modo il servizio viene aggiunto all'injector principale di Angular ed è anche sottoposto a tree-shaking con conseguente ottimizzazione del codice.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Eseguire attività con Azure Container Jobs
Sfruttare al massimo i topic space di Event Grid MQTT
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Short-circuiting della Pipeline in ASP.NET Core
Utilizzare i nuovi piani dedicati di Azure Container Apps
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Reactive form tipizzati con modellazione del FormBuilder in Angular
Eseguire una GroupBy per entity in Entity Framework
Miglioramenti nell'accessibilità con Angular CDK
Elencare le container images installate in un cluster di Kubernetes
Copiare automaticamente le secret tra più repository di GitHub
I più letti di oggi
- Evitare il flickering dei componenti nel prerender di Blazor 8
- Rilasciata la Beta 2 di Visual Studio 2008
- tra pochi minuti inizia la keynote della seconda giornata. seguila live su http://aspitalia.com/mix-11 #mix11
- .@dbochicchio ora su #aspnetcore 2 a #netconfit https://aspit.co/netconf-17
- Utilizzare angular-cli per creare una direttiva in Angular 2
- Windows Vista: il ritorno di WinFS con la beta1
- .@CristianCivera tra poco su #azure con i suoi tips&tricks per lo sviluppatore web: https://aspit.co/web15-live #aspilive
- Le novità di C# 10