我正在寻找一种在 aurelia 中单向绑定复选框的方法,同时仍然允许复选框接受用户的点击。
假设一个类似于以下内容的视图显示一个可选项目列表:
<template>
<div click.trigger="selected()">
<label......>${vm.code}</label>
<label....>${vm.description}</label>
<img...../>
<input type="checkbox" checked.one-way="vm.selected"></input>
</div>
</template>
用户应该能够单击视图中的任意位置来选择项目,因此它click.trigger="selected()"
被附加到容器中。在 内selected()
,vm.selected
复选框绑定的属性被更新。
复选框也应该是可点击的,但应该允许选择由selected()
方法控制。
readonly
不能在用于控制的checkbox
as 的输入控件上使用input.value
,在这种情况下,它是checked
感兴趣的属性。
调用preventDefault
事件 args 会禁用默认的复选框检查行为,这可以在 Aurelia 中通过单击委托返回 false 来实现。这将需要将另一个处理程序附加到输入控件,并且存在单击由输入控件处理并且不会冒泡到附加到容器 ( selected()
) 以实际控制选择的委托的问题。
也许我缺少另一种方法,我正在考虑使用两个字体很棒的图标,它们看起来像选中和未选中的复选框,并根据 vm.selected 的值在两者之间切换。