我在变量中有一个类名,我想将它添加到我的Angular2组件的host元素中,但我无法弄清楚这样做的方法。
如果它是一个常量字符串,我可以添加一个带有HostBinding的类。但是在HostBinding初始化时组件中不存在变量。至少我尝试时会“未定义”。
有没有办法将变量中的类添加到host元素?或者在我可以访问变量之后在构造函数中设置HostBinding?使用ngClass会很完美,但我不能将它应用到主机元素本身。
作为旁注 - 我这样做是因为我正在使用主机上下文(.my-theme)进行CSS主题化。如果有其他方法将这个主类应用于Angular2组件,我真的很开心。主题名称来自变量,因此它不是常量。
答案 0 :(得分:0)
您可以使用@HostBinding
绑定到类:
@HostBinding('class') hostClass;
然后在您的构造函数中或您可以访问该变量的任何地方,您可以将其附加到类中:
if (!hostClass) {
this.hostClass = classVar;
} else {
this.hostClass = `${this.hostClass} ${classVar}`;
}