You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular组件标签内添加内容不显示的问题求助

问题原因及解决方案

你遇到的问题是Angular内容投影未配置导致的:当你在组件标签内部添加内容时,Angular需要在子组件(app-mat-loading-card)的模板中明确指定这些内容的渲染位置,否则父组件传入的内容会被直接忽略。

解决步骤

在app-mat-loading-card组件的HTML模板中添加<ng-content>标签,它会作为父组件传入内容的占位符。根据你的布局需求,将其放在合适的位置,比如child容器内:

<!Doctype HTML>
<html>
<body>
<div class="main">
  <div [ngClass]="{'parent' : loading, 'parent-no-anim': !loading}">
   <div class="child">
     <!-- 内容投影出口:父组件传入的内容会渲染到这里 -->
     <ng-content></ng-content>
   </div>
  </div>
</div>
</body>
</html>

原理说明

<ng-content>是Angular实现内容投影的核心指令,它会将父组件中写在<app-mat-loading-card>标签内的所有内容,渲染到子组件模板中<ng-content>所在的位置。如果子组件模板没有这个标签,Angular会直接丢弃这些传入的内容,自然无法在开发者工具中看到。

如果需要针对不同类型的内容设置多个投影区域,可以给<ng-content>添加select属性,比如:

<!-- 子组件模板 -->
<ng-content select=".button-title"></ng-content>
<ng-content select="[data-type='icon']"></ng-content>

这样父组件中对应选择器的内容会被精准渲染到指定的<ng-content>位置。

内容的提问来源于stack exchange,提问作者Cem Pamir Bana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:01:15