假设我想将这样的标记转换为ng-content:
<div aaa>
AAA
</div>
<div aaa bbb>
BBB
</div>
为此,我可以使用选择器(看起来像常规的CSS选择器(:
<ng-content select="div[aaa]"></ng-content>
----- some other content here -----
<ng-content select="div[aaa][bbb]"></ng-content>
但是,如果我有此内容(我无法摆脱"部分"标签(怎么办:
<section>
<div aaa>
AAA
</div>
<div aaa bbb>
BBB
</div>
</section>
我可以使用哪些选择器来获得相同的结果?这对我不起作用:
<ng-content select="section div[aaa]"></ng-content>
----- some other content here -----
<ng-content select="section div[aaa][bbb]"></ng-content>
既不是:
<ng-content select="section>div[aaa]"></ng-content>
----- some other content here -----
<ng-content select="section>div[aaa][bbb]"></ng-content>
有什么解决方法吗?为什么选择器不能作为 CSS 选择器工作?这是设计使然吗?我在文档中找不到原因...
如果将"部分"标签替换为"ng模板"或"ng容器"会有所帮助吗?
我不相信ng-content是不可能的。
对于您想要做的事情,还有其他选择,但是它们有点复杂。
我的首选方法是使用 Angular CDK 门户。 有关更多信息,请参阅:
- https://material.angular.io/cdk/portal/overview
- https://blog.angularindepth.com/angular-cdk-portals-b02f66dd020c
- https://medium.com/@sumn2u/dynamic-ui-using-portals-in-angular-cdk-6051988b0f81