如何在不使用封装的情况下覆盖角度全局样式:ViewEncapsulation.None还是:: ng-deep?

时间:2018-04-30 13:06:04

标签: angular sass

我需要覆盖特定角度组件中src / styles.scss文件中定义的全局样式。

我知道我可以通过做类似下面的事情来做到这一点

import { ViewEncapsulation } from '@angular/core';
@Component({ ... encapsulation: ViewEncapsulation.None })

或根据需要使用 ::ng-deep /deep/ >>>

这两种方法似乎都有退缩。 ViewEncapsulation.None方法似乎使我的覆盖样式全局化,我的架构师不相信使用::ng-deep,因为他们试图通过避免ViewEncapsulation.Emulate应用的范围来尝试将样式应用于元素,I猜测。

我可以建议使用其他解决方案吗?

1 个答案:

答案 0 :(得分:1)

hackernoon对这些问题有很好的解释。不幸的是,它们几乎全部(如果还没有)已被弃用。

我认为您需要关注的是:host,它定位您正在处理的当前组件的模板。当然,这仅适用于该组件。