有条件地绑定 Aurelia 中的事件
Conditionally bind an event in Aurelia
是否可以在 html 视图中使用 .trigger()
或 .delegate()
有条件地绑定事件?
这是常规方式:
<div mousedown.delegate="handleMouseDown($event)"></div>
我在想这样的事情:
<div mousedown.delegate="isDraggable ? handleMouseDown($event) : null"></div>
理想情况下 isDraggable === false
没有注册处理程序。
目前我正在使用 .addEventListener()
在视图模型 attached()
函数中进行检查,有没有更好的方法?
正如@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>
是否可以在 html 视图中使用 .trigger()
或 .delegate()
有条件地绑定事件?
这是常规方式:
<div mousedown.delegate="handleMouseDown($event)"></div>
我在想这样的事情:
<div mousedown.delegate="isDraggable ? handleMouseDown($event) : null"></div>
理想情况下 isDraggable === false
没有注册处理程序。
目前我正在使用 .addEventListener()
在视图模型 attached()
函数中进行检查,有没有更好的方法?
正如@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>