Aurelia中的动态广播/复选框解决方案

时间:2019-01-11 21:52:51

标签: checkbox binding radio-button aurelia

我有一个要点在这里演示我的问题:

https://gist.run/?id=e2ccd5925e383f2fc36ad277c31bcf23

复选框版本可以正常工作,如果删除了复选框,它会正确更新模型,但是如果您更改选定的单选按钮,它将保留删除了所选内容的单选按钮上的真实值。如果删除model.bind="true"值,它将写为“ on”而不是true。我确实想要true / false,而不是on / off。

我希望该对象将其属性更新为true或false,这取决于是否动态选择该对象。在我的情况下,我不知道需要选择多少个单选按钮或复选框。我只知道在它不是一个集合的情况下,我只想要一个,而在它不是一个集合的情况下,我希望选择一个未知数。

2 个答案:

答案 0 :(得分:2)

就像其他答案提到的那样-<input type="checkbox">的行为不同于<input type="radio">

我已将您的要点进行了分叉,并进行了以下更改,以使单选按钮在aurelia中起作用:

1)向您的params集合中的第一个对象添加了一个名为selectedChanged的函数(它不一定存在,可以放在viewmodel类上,也许是一个更好的地方)。它负责处理单选按钮组中的选择更改,特别是它将遍历options(第二个参数)的集合,并将selected的{ {1}}与函数的第一个参数匹配,在所有其他选项上为false。

2)true上有一个名为id的事件,我将其委托给上述的名为input的函数,并传递change值和{{1 }}作为参数。

https://gist.run/?id=5f38414fde799dfc145fc1291d9f2fd3&sha=f12283b08bfb45e77b8280d46a3709b6ccb82768

答案 1 :(得分:0)

我认为您想实现的目标(打开/关闭单个值)无法通过无线电实现,因为它的工作方式(从集合中选择单个值)与复选框(打开单个值)不同/ off)(MDN reference)。因此,如果您确实希望具有类似收音机的外观,并具有复选框行为,请考虑使用一些CSS和额外的DOM元素使它看起来像这样,并表现得如此。