有条件地绑定 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>