加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular 4.x:没有服务提供者

发布时间:2020-12-17 06:49:29 所属栏目:安全 来源:网络整理
导读:我无法将服务注入Angular 4.x中的另一个服务并收到错误:错误:没有SkillsService的提供商! 我创建了一个repo that reproduces this error.您可以通过克隆repo并在repo根目录中运行ng test来在本地运行. 我采取的步骤…… 使用ng new创建应用程序 使用ng g
我无法将服务注入Angular 4.x中的另一个服务并收到错误:错误:没有SkillsService的提供商!

我创建了一个repo that reproduces this error.您可以通过克隆repo并在repo根目录中运行ng test来在本地运行.

我采取的步骤……

>使用ng new创建应用程序
>使用ng g服务联系人创建ContactService
>使用ng g服务技能创建SkillsService
>将SkillsService添加到ContactService的构造函数(使用@Inject批注)
>将两个SkillsService和ContactService作为提供者添加到app.module.ts
>运行ng测试并收到错误:错误:没有SkillsService的提供者!

如何为SkillsService的ContactService添加提供程序?

似乎它必须是非常简单的东西,但它很难从文档和搜索中解决.

解决方法

您对ContactService的测试使用的测试模块仅将ContactService声明为提供者.但是ContactService需要一个SkillsService.因此,SkillsService也必须是测试模块提供者的一部分:

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

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

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

但我不建议这样做,因为在应用程序增长时,测试会变得越来越慢.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读