0

查看 Angular Elements 文档,它展示了如何使用影子 DOM(即 Web 组件)创建封装的可共享组件,但我的公司有一个全局样式指南,因此我们需要所有组件具有相同的样式。我们如何在没有封装的情况下在 Angular 中创建自定义元素(即 HTMLElement)并能够在整个组织中共享它们?

4

1 回答 1

1

TLDR;
是的 - 事实上它是默认的,只是不要使用encapsulation: ViewEncapsulation.ShadowDom.

Stackblitz 示例

一些细节
不要对 Web 组件中涉及的许多规范感到困惑。当从 web 组件中交谈时,通常我们假设它具有样式封装,因为它使用 Shadow DOM,但这不是强制性的。

Angular 使用自定义元素来封装自引导的 Angular 组件。默认情况下,这个 Angular 组件不使用 Shadow DOM,除非您使用encapsulation: ViewEncapsulation.ShadowDom.
所以默认只是一个自定义元素,可以用全局 CSS 完美地设置样式。

于 2020-07-08T20:54:02.080 回答