gpt4 book ai didi

Angular 4.x : No provider for Service

转载 作者:太空狗 更新时间:2023-10-29 17:13:02 25 4
gpt4 key购买 nike

我在将服务注入(inject) Angular 4.x 中的另一个服务时遇到问题并收到错误:错误:没有提供 SkillsService!

我创建了一个 repo that reproduces this error .您可以通过克隆存储库并从存储库根目录简单地运行 ng test 来在本地运行它。

我采取的步骤...

  1. 使用 ng new 创建应用
  2. 使用 ng g service contact 创建 ContactService
  3. 使用 ng g service skills 创建 SkillsService
  4. 将 SkillsService 添加到 ContactService 的构造函数(使用 @Inject 注释)
  5. 将 SkillsService 和 ContactService 作为提供者添加到 app.module.ts
  6. 运行 ng test 并收到错误:Error: No provider for SkillsService!

如何向 SkillsService 的 ContactService 添加提供者?

看起来它一定很简单,但事实证明很难从文档中解决。

最佳答案

您对 ContactService 的测试使用了一个仅将 ContactService 声明为提供者的测试模块。但是 ContactService 需要一个 SkillsService。所以 SkillsService 也必须是测试模块的提供者的一部分:

TestBed.configureTestingModule({
providers: [ContactService, SkillsService]
});

您还可以在测试中使用整个应用程序模块:

TestBed.configureTestingModule({
imports: [AppModule]
});

但我不建议这样做,因为随着应用程序的增长,您的测试会变得越来越慢。

关于 Angular 4.x : No provider for Service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45575222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com