如何在所有组件中使方法或属性全局化

时间:2019-07-18 13:39:02

标签: angular

我正在创建一个新的角度项目,我想创建一个在两个主题之间切换以更改某些样式的按钮,该按钮在组件之一中,我需要在所有组件中进行更改,这是最好的方法要这样做吗?

注意:我是初学者

我试图使用Ng类来更改样式,但是它只能在相同的组件中使用,而不能在其他组件中使用,“我认为这是一种不好的方式”

2 个答案:

答案 0 :(得分:0)

您需要的是我认为的指令

https://angular.io/guide/attribute-directives

您可以将其添加到任何HTML元素中,它将接收指令逻辑

答案 1 :(得分:0)

由于CSS并不是真正动态的,因此您将不得不通过替换所有内容来更改主题或创建一个新的主题文件。

我会选择后者。然后,您可以在App主机上设置一个类来覆盖默认样式,即

componentDidMount

您可以有一个按钮单击事件,可以从子组件EventEmit到应用程序,也可以使用service共享该事件。

@HostBinding('class') themeClass: string;

我不知道你的结构,所以我不能说最好的。