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
Eseguire script pre e post esecuzione di un workflow di GitHub
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Creare una libreria CSS universale: Cards
Collegare applicazioni server e client con .NET Aspire
Definire stili a livello di libreria in Angular
Utilizzare Hybrid Cache in .NET 9
Creare una libreria CSS universale: Immagini
Loggare le query più lente con Entity Framework
Creare agenti facilmente con Azure AI Agent Service
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Utilizzare Azure AI Studio per testare i modelli AI