Como solucionar Angular ROR Error: ngIfElse must be a TemplateRef, but received '[object HTMLDivElement]'.

Problema:

Tu plantilla de Angular se ve así:

ngif_example.html
<div *ngIf="files.length > 0 ; else noFiles">
    <!-- ... -->
</div>
<div #noFiles>
    <!-- ... -->
</div>

pero cuando la abres en el navegador, ves el siguiente stacktrace:

ngif_error.txt
c_my_module.js:2 ERROR Error: ngIfElse must be a TemplateRef, but received '[object HTMLDivElement]'.
    at assertTemplate (common.mjs:3392:15)
    at set ngIfElse [as ngIfElse] (common.mjs:3328:9)
    at setInputsForProperty (core.mjs:11741:34)
    at elementPropertyInternal (core.mjs:10874:9)
    at ɵɵproperty (core.mjs:13637:9)
    at PlanungsunterlagenDashboardComponent_Template (planungsunterlagen-dashboard.component.html:8:55)
    at executeTemplate (core.mjs:10534:9)
    at refreshView (core.mjs:10419:13)
    at refreshComponent (core.mjs:11480:13)
    at refreshChildComponents (core.mjs:10210:9)

Solucion

El mensaje de error te está diciendo que #noFiles es un <div> pero debe ser un <ng-template>:

Para solucionarlo, cámbialo a un ng-template:

ngif_fix.html
<ng-template #noFiles>
    <!-- ... -->
</ng-template>

Si necesitas un <div> específicamente, necesitas colocarlo dentro del ng-template:

ngif_fix_div.html
<ng-template #noFiles>
    <div>
        <!-- ... -->
    </div>
</ng-template>

Echa un vistazo a artículos similares por categoría: Angular JavaScript