Angular 4.2
对Typescript 2.3
我正在重构一个服务,该服务负责创建一个新的脚本标记并将其添加到文档中.
以下是旧代码:
loadScript(src:string){
const script = document.createElement('script');
document.body.appendChild(script);
script.src = src;
}
现在,我想使用Renderer2
来避免直接进行DOM操作.所以我在我的服务中注入了我需要的东西,并更新了代码:
constructor(private renderer:Renderer2, @Inject(DOCUMENT) private document){}
loadScript(src:string){
const script = this.renderer.createElement('script');
this.renderer.appendChild(this.document.body,script);
script.src = src;
}
然而,我遇到了这个错误:
错误:渲染器2没有提供程序!
该服务属于一个CoreModule
,其唯一导入是@angular/common
中的CommonModule
This plunkr说明了这个问题