有条件地绑定Aurelia中的活动

时间:2017-08-22 10:56:10

标签: javascript aurelia aurelia-binding

是否可以在html视图中使用.trigger().delegate()有条件地绑定事件?

这是常规方式:

<div mousedown.delegate="handleMouseDown($event)"></div>

我想的是:

<div mousedown.delegate="isDraggable ? handleMouseDown($event) : null"></div>

理想情况下,如果isDraggable === false没有注册处理程序。

目前我只是使用attached()在视图模型.addEventListener()函数中执行此检查有更好的方法吗?

1 个答案:

答案 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>