将主机更改为HostBinding后,不再更新css类

时间:2018-02-28 09:30:18

标签: javascript angular

在我的指令中有一个isOpen()函数,它将菜单的状态返回为boolean值。

/**
  * Checks if the dropdown menu is open or not.
  */
isOpen(): boolean;

根据此情况,主机的css类会发生变化。如果我在@Directive装饰器上使用包含主机元数据的拼写,则在更改状态时将正确更新css类。

host: {
  '[class.show]': 'isOpen()'
}

但是,如果我在类中使用HostBinding的拼写,则css类不再更改。

@HostBinding('class.show') isShown: boolean = this.isOpen();

除了更改与主机的绑定外,其他一切都是相同的。如何让主机的css类使用HostListener方法更新自己?

编辑: 将问题放入上下文中:它是一个自定义指令,继承自Ngbdropdown

0 个答案:

没有答案