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
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Utilizzare le collection expression in C#
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Miglioramenti agli screen reader e al contrasto in Angular
Creare form tipizzati con Angular
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Ottimizzazione dei block template in Angular 17
Utilizzare la libreria Benchmark.NET per misurare le performance