2 つの可能性があります。
import {Component,Renderer,ElementRef} from 'angular2/core';
@Component({
selector: 'child',
template: '<div></div>',
})
export class ChildComponent {
constructor(private _renderer: Renderer,
private el: ElementRef) {
(...)
}
}
- むしろ、レンダラーが注入されるクラスが装飾されていないため、依存性注入が適用できないためだと思います。このコメントで強調されているように、注入するにはこれが必要です。
Injectable
何かに注入するためではなく、それ自体に注入するためのものです。
編集
コードを確認した後、メソッドに提供するプロバイダーのリストにレンダラーを追加する必要があるようですloadNextToLocation
。DialogService#open
メソッドのコードを次のように更新できます。
var otherResolved = Injector.resolve([
provide(DialogRef, { useValue: dialogRef})
provide(Renderer, { useValue: this.renderer})
]);
お役に立てば幸いです、ティエリー