在Angular中,ng-content用于在组件模板中插入外部内容。当没有传入内容时,ng-content会显示为空。如果想要为空ng-content提供回退,可以使用ng-template结合ngIf指令来实现。
具体步骤如下:
<ng-template #fallback>
<p>这是空内容的回退文本。</p>
</ng-template>
<ng-content *ngIf="!content; else fallback"></ng-content>
import { Component, ViewChild, ElementRef } from '@angular/core';
@Component({
selector: 'app-example',
template: `
<ng-content-example>
<p>这是传入的内容。</p>
</ng-content-example>
`,
})
export class ExampleComponent {
@ViewChild('fallback') fallback: ElementRef;
content: boolean;
ngAfterContentInit() {
this.content = this.fallback.nativeElement.children.length === 0;
}
}
这样,当没有内容传入ng-content时,会显示回退内容。当有内容传入时,会显示传入的内容。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云云数据库MySQL版、腾讯云云原生容器服务(TKE)。
腾讯云产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云