Я пытаюсь загрузить динамические компоненты во время выполнения, используя функцию compileModuleAndAllComponentsAsync. при загрузке компонентов я пытаюсь внедрить службу под названием ServicetestService .
Теперь происходит следующее: когда код достигает:
Заголовок ## const cmp = factory.create (inj, [], null, moduleRef);
Я получаю эту ошибку:
"Ошибка: StaticInjectorError (ServicetestService) [AnimationBuilder -> RendererFactory2]: \ n NullInjectorError: нетпровайдер для RendererFactory2! \ n на NullInjector.get
Вот код, который я использую:
return SystemJS.import(`${url}`).then((module) => {
return this.compiler.compileModuleAndAllComponentsAsync(module[`${moduleInfo.moduleName}`]).then(moduleWithCompFactories => {
const inj = Injector.create(
{
providers: [
{
provide: ServicetestService,
deps: []
}
],
//parent: null,
name: 'ServicetestService'
});
const moduleRef = moduleWithCompFactories.ngModuleFactory.create(inj);
if(moduleInfo.moduleName === 'LibrarytestModule'){
//return moduleRef;
console.log("module:");
console.log(module);
console.log("moduleref");
console.log(moduleRef);
console.log("factory");
const factory = moduleWithCompFactories.componentFactories[1];
console.log(factory);
console.log("cmp");
const cmp = factory.create(inj, [], null, moduleRef);
cmp.instance.ServicetestService = ServicetestService;
console.log(cmp);
}
return module;;
});
});
это синтаксис службы, которую я пытаюсь внедрить:
import { AbstractServicetestService } from 'abstractclasses';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class ServicetestService extends AbstractServicetestService{
constructor() {
super();
}
printhello(){
alert("Hello from service elie");
}