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

标签 angular

长期以来,我一直在寻找这个问题的明确答案。是否有可靠且推荐的替代策略来执行此操作? 此问题的不正确答案包括:

Just favor ::ng-deep for now

if component author didn't integrate styling into their API, you're out of luck

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

编辑:

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

最佳答案

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

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

显然,ng-deep 的用户并不干净,但目前别无选择。

关于angular - 在不使用::ng-deep、/deep/或 >>> 组合器的情况下设置第三方组件样式的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54055343/

相关文章:

angular - 如何从 $event 获取 Angular 项?

angular - 如何在 Angular 5 中路由到外部链接

css - 使用 Border-bottom 将悬停/事件链接放置在菜单项的底部

angular - 找到了合成属性@state。请在您的申请中包含 "BrowserAnimationsModule"或 "NoopAnimationsModule"

Angular-material:- 更改 Accordion 中 mat-expansion-panel 的默认图标

Angular 动态组件注入(inject)错误

angular - 使用 token API 和 angular 进行防伪

css - ionic 2 : Remove gigantic padding from form elements

angular - Material 2 添加更多颜色变量

angular - 如何为垫卡添加垫分页器?