Suppose i have simple Bootstrap panel component with multiple transclusion slots. Template example:
-
If you have a parent element of
with a template variable (#panelHeading
)
then you can query for it like
@ViewChild('panelHeading') panelHeading;
and set a property depending on whether there are children or not
constructor(private cdRef:ChangeDetectorRef) {}
showHeading:boolean = false;
ngAfterViewInit() {
this.showHeading = this.panelHeading.nativeElement && this.panelHeading.nativeElement.children.length > 0;
this.cdRef.detectChanges();
}
If
is an Angular2 component, then you can also use
@ContentChild(MyPanelHeading) panelHeading:MyPanelHeading;
constructor(private cdRef:ChangeDetectorRef) {}
showHeading:boolean = false;
ngAfterViewInit() {
this.showHeading = this.panelHeading != null;
this.cdRef.detectChanges();
}