使用函数将Angular HostBinding css类设置为value?

时间:2018-04-17 16:55:34

标签: css angular angular2-hostbinding

我有一个使用@HostBinding设置类的组件:

@HostBinding('class.dark-1') true;

哪个工作正常。但是,现在我需要在我的组件中创建一个函数来动态更改类。

例如,当点击组件中的按钮时,从dark-1light-2

我知道如何创建函数并从按钮调用它,但是如何更改主机绑定中的类并使用新类刷新UI?

2 个答案:

答案 0 :(得分:0)

您可以在单击按钮时切换clicked标志,并使用getter设置类:

@HostBinding("class.dark-1") public get classDark1() {
    return !this.clicked;
}

@HostBinding("class.light-2") public get classLight2() {
    return this.clicked;
}

private clicked = false;

public onClick() {
    this.clicked = true;
}

答案 1 :(得分:0)

Sinply给它一个属性名称:

@HostBinding('class.dark-1') isDark = true;

然后你可以改变它:

this.isDark = false;

或者更改整个className:

@HostBinding('class') className = 'dark-1';

this.className = 'light-1';