私は問題に直面しており、デバッグにかなりの時間を費やしていますが、無駄なものです。私はサービス内で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)
を投げている私も、質問のこの種に関連するStackOverflowの上のいくつかの答えを読みます角DI上thoughtramブログと以下のように@Injectを使用してサービスクラスのコンストラクタに試した: -
constructor(@Inject(Renderer) renderer : Renderer){}
それでも、何の成功を、まだ取得同じエラー。私はここでいくつかのトリックを欠いていると確信しています。コンポーネント内で同じものを使用するときに機能しますが、サービスクラスでなぜそれが受け入れられないのか分かりません。
が取るオーバーヘッドがあってはならないので、あなたが実際にアプリのデフォルト
Renderer
を取得しているnull, null
に渡すことでこれを見てくださいhttp://stackoverflow.com/questions/34710408/renderer-cannot-be-used-in-service –