如果子组件为空而不在其父组件中使用 *ngIf,如何不显示子组件?
How to not display subcomponent if it's empty without using *ngIf in it's parent?
我有以下问题:
有一个组件 A 和一个子组件 B。
<app-alert [response]="alertMessage"></app-alert>
子组件 B 扩展了 Ngb-alert 组件并具有如下模板:
<ngb-alert #selfClosingAlert id="selfClosingAlert" *ngIf="alertMessage" [type]="alertStyle" (closed)="alertMessage = ''">
{{ alertMessage }}
</ngb-alert>
当 alertMessage 为空时,警报被隐藏,但我的子组件 B 标记仍然占用网站上的一些 space。通常我希望 Subcomponent B 是自我负责的。我搜索了很多答案,但一无所获。
我是这样解决的:
在子组件 B 组件装饰器中添加主机 class 我的 alertMessage 值的条件
@Component({
selector: 'app-alert',
templateUrl: './alert.component.html',
styleUrls: ['./alert.component.css'],
host: {
'[class.d-none]': 'alertMessage === ""',
}
})
因此,当 alertMessage 为空时,我的子组件 B 标记获取 .d-none (bootstrap) class,这将它的显示设置为 'none'。现在当 alertMessage 为空时它不会占用任何位置。
我有以下问题:
有一个组件 A 和一个子组件 B。
<app-alert [response]="alertMessage"></app-alert>
子组件 B 扩展了 Ngb-alert 组件并具有如下模板:
<ngb-alert #selfClosingAlert id="selfClosingAlert" *ngIf="alertMessage" [type]="alertStyle" (closed)="alertMessage = ''">
{{ alertMessage }}
</ngb-alert>
当 alertMessage 为空时,警报被隐藏,但我的子组件 B 标记仍然占用网站上的一些 space。通常我希望 Subcomponent B 是自我负责的。我搜索了很多答案,但一无所获。
我是这样解决的:
在子组件 B 组件装饰器中添加主机 class 我的 alertMessage 值的条件
@Component({
selector: 'app-alert',
templateUrl: './alert.component.html',
styleUrls: ['./alert.component.css'],
host: {
'[class.d-none]': 'alertMessage === ""',
}
})
因此,当 alertMessage 为空时,我的子组件 B 标记获取 .d-none (bootstrap) class,这将它的显示设置为 'none'。现在当 alertMessage 为空时它不会占用任何位置。