首页 > 解决方案 > 在 Angular 中自动注册服务

问题描述

在 Vue.js 中,我使用了Vue 指南require.context中记录的技术

我想知道是否有适用于 Ionic Angular 的等价物,所以我不必添加我写入的每一个服务app.module.ts

标签: angularwebionic-frameworkwebpack

解决方案


来自 Angular 文档(https://angular.io/guide/singleton-services#using-providedin):

从 Angular 6.0 开始,创建单例服务的首选方法是在服务的 @Injectable() 装饰器上将 providedIn 设置为 root。这告诉 Angular 在应用程序根目录中提供服务。

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root', // <-- here!
})
export class UserService { ... }

因此,如果您在可注入装饰器中设置provideInroot,则无需再将该服务添加到 的providers数组中AppModule

请记住,...

从 Angular 6.0 开始,最好在服务本身上使用 @Injectable() 装饰器的 providedIn 属性,因为它使您的服务可摇树


推荐阅读