SuperAPI AI 工具集

angular-di

前端与建站

查看项目

更新于 10-16 06:22

技能介绍

用途:在 Angular v20+ 中配置和使用依赖注入,覆盖服务架构与 provider 配置。

主要能力:优先使用 inject() 而非构造函数注入;通过 @Injectable({ providedIn: 'root' }) 定义根级单例服务,或在组件 providers、路由 providers 中限定作用域;使用 InjectionToken 创建值令牌与带 factory 的自提供令牌;支持 useClass、useValue、useFactory、useExisting 等 provider 类型;支持 optional、self、skipSelf、host 注入选项;支持 multi provider 收集同令牌多值(如校验器、HTTP 拦截器);使用 provideAppInitializer 在应用启动前执行异步初始化;通过 createEnvironmentInjector 与 runInInjectionContext 以编程方式创建注入器并在注入上下文中运行代码。

使用方式:在组件或服务中调用 inject() 获取依赖;在 app.config.ts 的 providers 数组中注册令牌与实现;路由级 providers 用于路由树内共享实例。

适用场景:服务架构设计、跨组件共享状态、可替换实现、配置注入、启动初始化与插件式注入器。

限制:资料针对 Angular v20+;异步 useFactory 不被推荐,应改用 provideAppInitializer;更高级模式需参考 references/di-patterns.md,该文件内容暂未提供。