Цель состоит в том, чтобы понять, как получить ссылку на любой вложенный компонент. Вот пример с 4 вложенными компонентами. A имеет B в качестве дочернего элемента, B имеет C в качестве дочернего элемента, а C имеет D в качестве динамического / созданного во время выполнения дочернего компонента. Итак, вопросы в том, предоставляет ли Angular готовое решение для:
Как компонент может получить ссылку на компонент C?
Как компонент может получить ссылкук компоненту D, который создается во время выполнения?
@Component({
selector: 'A',
template: `<B></B>`
})
export class A {}
@Component({
selector: 'B',
template: `<C></C>`
})
export class B {}
@Component({
selector: 'C',
template: `<div>C Component</div> <div #container></div>`
})
export class C implements OnInit{
@ViewChild('container')
container: TemplateRef<any>;
constructor(private resolver:ComponentFactoryResolver){}
ngOnInit() {
const DFactory= this.resolver.resolveComponentFactory(D);
this.container.createComponent(DFactory);
}
}
@Component({
selector: 'D',
template: `<div>D component</div>`
})
export class D{}