我有一个接受事件的指令:
<td calendarEvent [event]=event><td>
在指令内部,我有HostBinding
用于根据事件添加类的,以及HostListener
用于侦听mouseenter
和mouseleave
事件的。例如:
@HostBinding('class.all-day') get eventIsAllDay() {
if (this.event) return this.event.is_all_day;
}
许多<td>
旨意具有undefined
的[event]
输入。有没有一种方式HostBinding
,并HostListener
根据条件将被添加?在每次更改检测中,它都必须为每个<td>
标记运行所有绑定和侦听器,即使那些没有事件的标记也是如此。也许所需的计算能力可以忽略不计,但是我敢肯定,一点点帮助,特别是对于移动设备。
没有办法有条件地添加这些。
您可以使用属性并绑定到该属性。使用属性进行更改检测比使用函数或获取方法更有效。
@HostBinding('class.all-day')
eventIsAllDay:boolean = false;
set event(val) {
this.event.is_all_day === val;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句