Knockout.js 无法在knockoutjs中选中复选框

Knockout.js 无法在knockoutjs中选中复选框,knockout.js,knockout-2.0,Knockout.js,Knockout 2.0,我有以下代码示例: 我试图使复选框具有正常的选中/取消选中行为。在我将onclick事件添加到每个复选框之前,它工作正常。此onclick事件调用此方法: self.saveIsMeasureChecked = function (item) 此方法结束后,复选框返回到选中/取消选中之前的旧状态-这使您看起来根本无法更改checbox的状态 您需要从单击事件处理程序返回true,以触发浏览器默认行为(另请参见:允许默认单击操作部分) 演示 然而,在Knockout中似乎有一些不太正确的地

我有以下代码示例:

我试图使复选框具有正常的选中/取消选中行为。在我将onclick事件添加到每个复选框之前,它工作正常。此onclick事件调用此方法:

 self.saveIsMeasureChecked = function (item) 

此方法结束后,复选框返回到选中/取消选中之前的旧状态-这使您看起来根本无法更改checbox的状态

您需要从单击事件处理程序返回
true
,以触发浏览器默认行为(另请参见:允许默认单击操作部分)

演示

然而,在Knockout中似乎有一些不太正确的地方,因为当您在复选框上使用
绑定和
单击
绑定时,您需要第一次单击两次才能更改复选框

但是,如果您正在使用
attr
绑定来设置值,那么一切似乎都正常

<input name="cbIsMeasureChecked" type="checkbox" 
       data-bind="attr: {value: foodId}, 
       checked: isMeasureChecked, 
       click: $root.saveIsMeasureChecked" />

演示

<input name="cbIsMeasureChecked" type="checkbox" 
       data-bind="attr: {value: foodId}, 
       checked: isMeasureChecked, 
       click: $root.saveIsMeasureChecked" />