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;
}
Однако я сталкиваюсь с этой ошибкой:
Ошибка: нет поставщика для Renderer2!
Служба принадлежит CommonModule
CoreModule
, единственным импортом которого является CommonModule
из @angular/common
Этот планкр демонстрирует проблему