Angenommen, ich habe eine einfache Bootstrap-Panel-Komponente mit mehreren Einfangslots. Vorlagenbeispiel:Wie überprüft man, ob ng-content vorhanden ist
<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>
Ich möchte Panel-Überschrift optional machen. Wie kann ich <div class="panel-heading">
Element verstecken, wenn es keinen Inhalt für <ng-content select="my-panel-heading"></ng-content>
'ngIf' sollte gegenüber' [hidden] 'bevorzugt werden. Gibt es einen Grund, warum Sie "versteckt" bevorzugen? –
@ GünterZöchbauer Wenn die Variable showHeading auf false initialisiert wird, wird das Element zu dem Zeitpunkt, zu dem ngAfterContentInit aufgerufen wird, aus der Vorlage entfernt. Der Verweis auf viewChild ist nicht definiert. Wenn ngIf bevorzugt ist, könnten Sie den Standardwert für showHeading in true ändern und es sollte funktionieren. – hendrix
Eigentlich habe ich es gerade getestet und es funktionierte nicht gut mit * ngIf, auch nachdem der Standardwert auf true geändert wurde. Der Verweis auf #panelHeading war immer noch undefiniert, weil * ngIfd es entfernt hat. – hendrix