在Angular2的指令或组件中将@HostBinding和@HostListener作为条件

背风处

我有一个接受事件的指令:

<td calendarEvent [event]=event><td>

在指令内部,我有HostBinding用于根据事件添加类的,以及HostListener用于侦听mouseentermouseleave事件的。例如:

@HostBinding('class.all-day') get eventIsAllDay() {
  if (this.event) return this.event.is_all_day;
}

许多<td>旨意具有undefined[event]输入。有没有一种方式HostBinding,并HostListener根据条件将被添加?在每次更改检测中,它都必须为每个<td>标记运行所有绑定和侦听器,即使那些没有事件的标记也是如此。也许所需的计算能力可以忽略不计,但是我敢肯定,一点点帮助,特别是对于移动设备。

贡特·佐赫鲍尔(GünterZöchbauer)

没有办法有条件地添加这些。

您可以使用属性并绑定到该属性。使用属性进行更改检测比使用函数或获取方法更有效。

@HostBinding('class.all-day') 
eventIsAllDay:boolean = false;

set event(val) {
  this.event.is_all_day === val;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章