我来自.NET背景,只是一个关于Angular依赖注入的问题。
在.NET / .NET Core中,有三种不同的服务生存期:瞬态,作用域和单例。但是对于Angular,它只有等效的“ Singleton”,我的理解正确吗?如果是,为什么Angular不提供其他服务类型,例如“ Transient”?
答案 0 :(得分:2)
从技术上讲,Angular中的所有服务均为scoped
。但是,它们的范围可以是:
@Injectable({ providedIn: 'root', })
@NgModule({ ... providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }] })
@Component({ ... providers: [{ provide: ItemService, useValue: { name: 'lamp' } }] })
文档的这一部分介绍了注入的层次结构:https://angular.io/guide/dependency-injection#configure-an-injector-with-a-service-provider