我有一个复选框列表,当用户选中其中一个复选框时,在.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>
非常感谢任何帮助。
答案 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>