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

Angular中能否以自定义标签形式向组件传入子内容?

如何用自定义标签替代属性选择器配合Angular的ng-content?

当然可以实现你想要的写法,这其实是Angular的ng-content支持CSS元素选择器的常规用法,具体操作如下:

1. 修改app-comp组件的模板

把ng-content的select属性改成直接匹配自定义标签名:

<div class="test">
  <ng-content select="content1"></ng-content>
  <ng-content select="content2"></ng-content>
</div>

这里的select="content1"会直接匹配<content1>标签,而不是带content1属性的元素。

2. 在component2中直接使用自定义标签

现在你可以按照预期的简洁方式使用app-comp了,注意要把自定义标签放在app-comp组件内部,这样ng-content才能正确捕获内容:

<app-comp>
  <content1>Test</content1>
  <!-- 可选:添加content2内容 -->
  <content2>更多测试内容</content2>
</app-comp>

补充说明

你之前使用的<div content1>是对应ng-content的属性选择器(即select="[content1]"),而改成自定义标签后,本质是切换成了元素选择器,这完全符合Angularng-content的设计规则——它支持所有标准CSS选择器语法。

另外建议:自定义标签尽量避免和原生HTML元素重名(比如不要用<header>、<nav>这类),如果团队有规范,也可以给标签加统一前缀(比如<app-content1>),避免潜在的命名冲突。

内容的提问来源于stack exchange,提问作者Petr Klekner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 03:12:48