For accessing the directives in a component, I have tried Angular 2: Get reference to a directive used in a component but this doesn't work for directives in the child components of the component.
The child components are created dynamically using ViewContainerRef.
@ViewChildren(ViewRefDirective) allMyDirectives;
//This doesn't work for directives in the child components
I have multiple different child components, that's why I can't specify the name of a single child component in ViewChild for accessing its directives.
Directive
@Directive({
selector: '[view-ref-host]',
})
export class ViewRefDirective {
constructor(public viewContainerRef: ViewContainerRef) {
}
}
Parent component
<div>
<div view-ref-host>Parent block
<child-panel-one></child-panel-one>
<child-panel-two></child-panel-two>
<child-panel-three></child-panel-three>
</div>
</div>
Child panel one component
<div>
<div view-ref-host>Child panel one
<!-- html here -->
</div>
</div>
Child panel two component
<div>
<div view-ref-host>Child panel two
<!-- html here -->
</div>
</div>
Child panel three component
<div>
<div view-ref-host>Child panel three
<!-- html here -->
</div>
</div>
How can I use the ViewChild decorator to access all the directives in parent and child component?