在Angular 2中的另一个服务中注入自定义服务
Inject custom service in another service in Angular 2
我想将服务注入另一个服务。我在注入标准角度服务(Http等)时没有任何问题,但当我尝试注入自己的服务时,我会得到一个exeption。
示例:
MyService:
import {Injectable, Inject} from 'angular2/core';
import {AnotherService} from '../../services/another.service';
@Injectable()
export class MyService {
constructor(Inject(AnotherService) private anotherService: AnotherService) {
console.log(this.anotherService.get());
}
}
AnotherService:
import {Injectable} from 'angular2/core';
@Injectable()
export class AnotherService {
constructor() { }
get() { return 'hello'); }
}
当我尝试使用MyService时,我会得到EXCEPTION: No provider for AnotherService!
我尝试过使用constructor(private anotherService: AnotherService)
,但仍然抛出异常。
谢谢!
您应该阅读Angular 2文档。您的确切问题在这里的角度文档中有解释:https://angular.io/docs/ts/latest/guide/dependency-injection.html#when-服务需求服务
您必须将服务添加到提供程序阵列中。您可以在不执行此操作的情况下使用Http的唯一原因是Ionic将其放在提供者数组中。如果您使用的是vanilla Angular 2,那么您仍然需要将HTTP_PROVIDERS添加到提供者数组中。
顺便说一句,你不需要在你的构造函数中注入,你只需要做:
constructor(private anotherService: AnotherService) {
console.log(this.anotherService.get());
}
相关文章:
- AngularJS在不使用变量的情况下将服务注入模块中,这样就可以缩小它
- AngularJS 服务注入器错误
- 采用多种方法在控制器中进行角服务注入
- 是否可以将服务注入Angular 1.5组件's templateUrl属性
- 当服务注入到其他地方时,角度提供程序配置重置
- 如何将服务注入链接函数包含指令
- 将控制器作为打字稿/角度中的服务注入
- 无法将服务注入其 Angular 单元测试中
- 将服务注入指令 AngularJS 和数据绑定
- 为什么当服务注入第二个控制器时,AngularJS 1.4.8 应用程序不起作用
- 将升级的服务注入组件
- 错误:将Angular$http服务注入需要插件
- 如何将多个服务注入一个控制器
- AngularJS,将服务注入控制器
- Angular如何将服务注入.run(函数
- 如何将服务注入AngularJS'的UI路由器templateUrl函数
- 当将服务注入(导入)到我的构造函数中时;无提供者”;错误
- 在AngularJS中,当自定义服务注入到不同的模块时,未知的提供商
- 为另一个服务注入服务
- 为什么我不能把服务注入到Angular的工厂/注入器中?