在不使用 ::ng-deep、/deep/ 或 >>> 组合器的情况下,为第 3 方组件设置样式的正确方法是什么?

Kee*_*ggs 8 angular

很长一段时间以来,我一直在寻找这个问题的明确答案。是否有可靠且推荐的替代策略来做到这一点? 这个问题的错误答案包括:

现在只喜欢 ::ng-deep

如果组件作者没有将样式集成到他们的 API 中,那你就不走运了

根据文档,所有 3 个组合器都已弃用,那么解决此问题的“正确方法”是什么?

编辑:

建议使用全局样式策略的答案从字面上回答了这个问题,并受到赞赏。然而,Angular 是一个基于组件的框架,视图封装是使其成为有价值工具的核心优势之一。为了公平对待那些提供答案的人,问题中没有具体说明这一点。尽管如此,一般用例和期望的行为是保持视图封装,因此工作流中的这种戏剧性变化对于大多数情况来说并不是一个合理的解决方案,即“正确的方式”。

Pie*_*ier 5

除非您想要更改所有实例,否则无法全局放置样式。目前,没有正确的方法来实现您的要求。

角度文档指出 /deep/ 和 >>> 已弃用。ng-deep 也已弃用,但文档没有提供一种方法来实现修复 Angular 中的第 3 方组件实例的预期目标。文档推断的常见做法是使用已弃用的 ng-deep 运算符,而 Angular 团队则弄清楚要做什么。

显然,ng-deep的用户并不干净,但目前也没有其他办法。


Chr*_*ian 1

将它们添加到您的全局样式中。