Załóżmy, że mam prosty komponent panelu Bootstrap z wieloma gniazdami transclusion. Przykładowy szablon:Jak sprawdzić, czy istnieje zawartość ng
<div class="panel panel-default">
<div class="panel-heading">
<ng-content select="my-panel-heading"></ng-content>
</div>
<div class="panel-body">
<ng-content select="my-panel-content"></ng-content>
</div>
</div>
Chcę, aby nagłówek panelu był opcjonalny. Jak ukryć <div class="panel-heading">
elementu, jeśli nie ma treści dostarczone przez <ng-content select="my-panel-heading"></ng-content>
'ngIf' powinno być preferowane zamiast' [ukryte] '. Czy istnieje powód, dla którego wolisz "ukryty"? –
@ GünterZöchbauer, jeśli zmienna showHeading została zainicjowana na wartość false, element jest usuwany z szablonu przed wywołaniem ngAfterContentInit, co powoduje, że odwołanie do viewChild jest niezdefiniowane. Jeśli preferowana jest opcja ngIf, możesz zmienić domyślną wartość parametru showHeading na wartość true, która powinna działać. – hendrix
Właściwie to po prostu przetestowałem i nie działało dobrze z * ngIf nawet po zmianie wartości domyślnej na true. Odniesienie do #panelHeading było wciąż niezdefiniowane, ponieważ * ngIf usunął je. – hendrix