Я использую Angular 8, и у меня есть динамически созданный компонент. У меня есть родительский компонент с сервисом в массиве провайдеров. Как я могу вставить тот же экземпляр родительского MyService
в динамический компонент? Без динамического компонента я могу добиться этого, просто вставив в конструктор дочернего компонента эту службу. Но как я могу это сделать с помощью динамического компонента? Вот код создания динамического компонента
@Component({
selector: 'app-parent',
templateUrl: './parent.component.html',
providers: [MyService],
})
export class ParentComponent {
constructor(
private componentFactoryResolver: ComponentFactoryResolver,
private myService: MyService,
) {
}
createDynamicComponent() {
const injector: Injector = Injector.create({
providers: [
{
provide: MAT_DATE_FORMATS,
useValue: getMatDateFormat(this.dateFormat),
},
],
})
this.dynamicPlaceholder.clear()
const componentFactory = this.componentFactoryResolver
.resolveComponentFactory(DynamicComponent)
const componentRef = this.dynamicPlaceholder
.createComponent(componentFactory, 0, injector)
}
}