【发布时间】:2020-06-27 15:27:52
【问题描述】:
我有一个关于.. 我们如何将下面的语句转换为 angular`s renderer2 的问题?
this.elementRef.nativeElement.style.setProperty( '--primary-color ' , '#455363' )
在选择黑色模式时,上面的语句正在将CSS变量更改为指令。与 Angular 一样,直接访问 DOM 并不是一个好习惯,这就是我们使用 renderer2 的原因。但我不知道如何将上述语句转换为 renderer2 以安全访问 DOM。
非常简单,谁能告诉我如何使用 renderer2 安全地更改指令中的 css-variable 或将 css-variable 转换为指令的最佳方法。
谢谢。
【问题讨论】:
-
只是一个建议,不要用角度改变css变量。设置样式并更改样式名称。为组件设置样式更容易。您甚至可以启用主题。这不是一个好方法
-
@MoHradA 你能给出一个关于主题的示例链接吗?您能否提供更多关于使用 angular 更改 css 变量的不好做法的详细信息?
-
check akveo.github.io/nebular/docs/design-system/… 这一切都是通过 mixin 和函数以及单个服务完成的
-
@MoHradA 谢谢你的建议!!我要实现的有点像这种类似的方法,但方式不同。您可以在此链接中查看我的小实现stackblitz.com/edit/…
-
@MoHradA 以我的方式,我正在使用指令。我们可以将此指令作为父包装器。一项主题更改服务。并让用户决定他们如何使用这个指令和服务。他们需要做的是首先,定义他们自己的可变配色方案,然后他们需要将该配色方案传递给服务方法
changeTheme()。
标签: javascript css angular typescript