【发布时间】:2019-08-23 21:03:51
【问题描述】:
我正在尝试找出如何设置自定义样式以在 Angular 的 ngTemplateOutlet 中应用。我有两个组件,一个父组件和一个子组件,我将一个模板从父组件传递给子组件,然后使用 ngTemplateOutlet 打印该模板。我想做的是使用父样式和子样式来呈现模板,而不仅仅是其中一种。
这是我父组件的 HTML 的样子:
<child-component [template]="myTemplate">
<ng-template #myTemplate>
<p class="paragraph">Hello</p>
</ng-template>
</child-component>
CSS:
.paragraph { color: red; }
还有孩子:
<ng-container *ngTemplateOutlet="myTemplate"></ng-container>
CSS:
.paragraph { font-weight: bold; }
我希望看到带有红色背景和粗体字母的“Hello”,但 Angular 的影子 DOM 封装迫使模板忽略子样式。
我知道我可以通过删除 DOM 封装来解决这个问题,但这不是一个选项,因为我想避免将 CSS 类添加到全局命名空间。所以我想知道是否有办法在 Angular 中干净地实现期望的效果。
【问题讨论】:
标签: css angular shadow-dom ng-template