问题描述
我有一种情况,我有一个组件,它执行一些http
请求以显示数据,并且如果这样做时有异常,我想只显示错误组件。
将错误组件包含在模板上是否有意义
<ng-template [ngIf]="showError">
<error-view></error-view>
</ng-template>
并将标志设置为true以显示。
还是在出现错误时使用ComponentFactoryResolver
动态注入组件?
解决方法
*ngIf
指令不会立即呈现元素。
以下
<ng-template [ngIf]="showError">
<error-view></error-view>
</ng-template>
或更短的变体
<error-view *ngIf="showError"></error-view>
在showError
为真之前,实际上不会渲染组件。
在渲染过程中,ng-template
将替换为诊断注释,例如
<!--bindings={
"ng-reflect-ng-if": "false"
}-->
因此,我说在这种情况下不必使用ComponentFactoryResolver
。