如何在Aurelia中设置复选框绑定

时间:2016-02-09 16:19:07

标签: aurelia aurelia-binding

我有一个复选框列表,当用户选中其中一个复选框时,在.js文件中调用一个函数,然后又调用调用webapi控制器的方法dataservice.js,这一切都正常并返回正确的数据

完成此过程后会发生的事情是未选中触发序列的复选框。我已经检查了结果并且schoolDistrict.IsChecked为该项目设置为true,这是正确的。

如何选中复选框?

下面是代码,但我不确定check.one-way bind

<li repeat.for="schoolDistrict of schools.Districts">                                     
  <input type="checkbox" checked.one-way="schoolDistrict.IsChecked" value="${schoolDistrict.Value}" click.trigger="searchSchoolDistrict()"/>${schoolDistrict.Name}
</li>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:26)

这里有一些问题:

  • 问题可能是您的searchSchoolDistrict()代码正在更改IsChecked属性,但one-way绑定没有侦听更改。
  • 虽然插值可行,但使用绑定语法可能是更好的样式。
  • 设置change.delegate更加健壮,并会在复选框上收听所有更改,这是复选框的最佳做法。
  • 已弃用请确保为searchSchoolDistrict()选择适当的范围,因为它可能位于$parent而不是schoolDistrict

请尝试使用此代码:

<li repeat.for="schoolDistrict of schools.Districts">                                     
  <input type="checkbox" 
    checked.bind="schoolDistrict.IsChecked" 
    value.one-way="schoolDistrict.Value"
    change.delegate="searchSchoolDistrict()"/>
  ${schoolDistrict.Name}
</li>