在Angular 6的最新版本中,使用服务元数据中的providedIn属性在模块中注册服务:

@Injectable({
  providedIn: 'root',
})
export class HeroService {}

然而,文档中仍然提到在模块元数据中的模块providers数组中注册服务,就像我们在Angular 5中所做的那样:

@NgModule({
  providers: [HeroService],
})
export class AppModule {}

所以

  • 应该使用哪种方法让注入器知道应该注入的服务?
  • 模块providers数组方法会被弃用吗?

推荐答案

基本上,您可以使用其中任何一种,但根据新的CLI provideIn将在创建service时自动添加

#提供

现在有了一种新的推荐方式,可以直接注册Provider

这种新的方法已经被引入,以便在future 更好地摇树

有关更多信息,请参阅此处

Typescript相关问答推荐

创建一个通用上下文,允许正确推断其中的子项

如何使用属性作为具有Generics的TypScript类中的类型守护?

在Angular中,如何在文件上传后清除文件上传文本框

node—redis:如何在redis timeSeries上查询argmin?

TypeScript实用程序类型—至少需要一个属性的接口,某些指定属性除外

接口的额外属性作为同一接口的方法的参数类型'

如何推断计算逻辑的类型

状态更新后未触发特定元素的Reaction CSS转换

如何判断对象是否有重叠的叶子并产生有用的错误消息

在分配给类型的只读变量中维护const的类型

类型脚本满足将布尔类型转换为文字.这正常吗?

如何 bootstrap TS编译器为类型化属性`T`推断正确的类型?

为什么在leetcode问题的测试用例中,即使我确实得到了比预期更好的解决方案,这段代码也失败了?

在VSCode中显示eslint错误,但在终端中运行eslint命令时不显示?(Vite,React,TypeScript)

VITEST警告:当前的测试运行器不支持After Each/teardown挂钩

从联合提取可调用密钥时,未知类型没有调用签名

如何创建允许使用带有联合类型参数的Array.from()的TS函数?

如何通过nx找到所有受影响的项目?

我应该使用服务方法(依赖于可观察的)在组件中进行计算吗?

从 npm 切换到 pnpm 后出现Typescript 错误