我面临一个问题,并花费了很多时间调试它,但都是徒劳的。我正在尝试在服务中使用Angular2 Renderer类方法。首先,我把它注射在类的构造函数象下面这样: -Angular2 - 服务类别中没有提供者错误
@Injectable
export class MyService{
constructor(private renderer: Renderer,
private _cd: ChangeDetectorRef){}
myFunct(){
this.renderer.setElementStyle(......);
}
......
}
有了这个浏览器控制台抛出错误堆栈
Error: No provider for Renderer!
at NoProviderError.BaseError [as constructor] (http://local.xyz.com:3000/vendor.bundle.js:30912:34)
at NoProviderError.AbstractProviderError [as constructor] (http://local.xyz.com:3000/vendor.bundle.js:28881:16)
我读#2几个答案与此相关的各种问题也thoughtram博客上角DI,并试图在服务类的构造函数使用@Inject象下面这样: -
constructor(@Inject(Renderer) renderer : Renderer){}
尽管如此,没有成功,仍然得到同样的错误。我相信我在这里错过了一些技巧。当我在一个组件中使用相同的东西时,它是有效的,我不知道为什么在服务类中,它不接受它。
采取看看这个http://stackoverflow.com/questions/34710408/renderer-cannot-be-used-in-service –