用途:处理 Angular 服务、@Injectable、依赖注入或业务逻辑服务时使用,面向 Angular 21(2025),标签为 Services、@Injectable、DI。
主要能力与用法:
- 使用 providedIn 创建服务:以 @Injectable({ providedIn: 'root' }) 声明根级服务,例如 DataService 通过 this.http.get('/api/data') 获取数据。
- 使用 inject() 函数:在服务中以 private http = inject(HttpClient) 注入依赖,配合 getUsers() 返回 this.http.get<User[]>('/api/users')。
- 使用工厂提供者:通过 providedIn: 'root' 与 useFactory 构造实例,如 useFactory: () => new LoggerService(environment.production),并在构造函数接收 isProduction 参数。
- 懒加载服务:使用 providedIn: 'any' 声明 LazyService。
- 在组件中使用服务:以 private dataService = inject(DataService) 注入,并用 data$ = this.dataService.getData() 消费。
- 注入多个服务:可同时注入 AuthService、HttpClient、Router。
- 使用服务共享状态:CartService 以 signal<Item[]>([]) 保存 items,暴露 cartItems = this.items.asReadonly(),并通过 addItem 用 this.items.update(items => [...items, item]) 更新。
适用场景:Angular 应用中的数据访问、用户管理、日志、懒加载逻辑以及跨组件共享状态等业务逻辑服务开发。
限制:资料仅给出以上示例与版本信息,未提供收费、安装命令、平台支持或运行效果等额外说明。资料中未提供的内容暂未提供。