是否可以在html视图中使用.trigger()
或.delegate()
有条件地绑定事件?
这是常规方式:
<div mousedown.delegate="handleMouseDown($event)"></div>
我想的是:
<div mousedown.delegate="isDraggable ? handleMouseDown($event) : null"></div>
理想情况下,如果isDraggable === false
没有注册处理程序。
目前我只是使用attached()
在视图模型.addEventListener()
函数中执行此检查有更好的方法吗?
答案 0 :(得分:1)
正如@thebluefox在问题评论中指出的那样
<div mousedown.delegate="isDraggable ? handleMouseDown($event) : null"></div>
确实有效但添加绑定行为时会出现一些问题。
以下示例在评估三元
时将失败 <div mousedown.delegate="isDraggable ? handleMouseDown($event) & throttle:500 : null"></div>
<div mousedown.delegate="isDraggable ? (handleMouseDown($event) & throttle:500) : null"></div>
作为一种解决方法,您可以反转测试,以便最后进行绑定,例如
<div mousemove.delegate="!isDraggable ? null : handleMouseMove($event) & throttle:500 "></div>