有什么方法可以将变量中的类名添加到Angular2中的host元素而不会消除现有的类?

时间:2018-04-27 16:30:54

标签: css angular themes

我在变量中有一个类名,我想将它添加到我的Angular2组件的host元素中,但我无法弄清楚这样做的方法。

如果它是一个常量字符串,我可以添加一个带有HostBinding的类。但是在HostBinding初始化时组件中不存在变量。至少我尝试时会“未定义”。

有没有办法将变量中的类添加到host元素?或者在我可以访问变量之后在构造函数中设置HostBinding?使用ngClass会很完美,但我不能将它应用到主机元素本身。

作为旁注 - 我这样做是因为我正在使用主机上下文(.my-theme)进行CSS主题化。如果有其他方法将这个主类应用于Angular2组件,我真的很开心。主题名称来自变量,因此它不是常量。

1 个答案:

答案 0 :(得分:0)

您可以使用@HostBinding绑定到类:

@HostBinding('class') hostClass;

然后在您的构造函数中或您可以访问该变量的任何地方,您可以将其附加到类中:

if (!hostClass) {
    this.hostClass = classVar;
} else {
    this.hostClass = `${this.hostClass} ${classVar}`;
}