为什么我的Knockout Radio按钮在使用单击绑定的另一个元素内失败?

Dih*_*ral 3 html javascript knockout.js

我有一个单选按钮列表.我想点击<li>他们的in也检查单选按钮.这一切都有效,直到我name在无线电元素上放置一个属性.然后我的代码停止工作.

这是我的代码的样子:

<ul data-bind="foreach: rows">
    <li data-bind="click: function() { $parent.val($data); }">
        <input type="radio" name="my_radio" data-bind="value: $data, checked: $parent.val" />
        <label data-bind="text: $data"></label>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这是两个测试用例.

务必单击单选按钮和行.

工作: http ://jsfiddle.net/Dihedral/HJGxX/2/

不工作: http ://jsfiddle.net/Dihedral/HJGxX/3/

在第二种情况下,当只是单击收音机时,您将看到val()observable正在更新,但UI不是.任何人都知道这里发生了什么,或者可以看到解决方法?

mhu*_*mhu 6

单击未到达单选按钮,因为knockoutjs从单击处理程序返回false,从而阻止默认操作发生(请参阅:注释3).只需从点击处理程序(http://jsfiddle.net/HJGxX/4/)返回true :

<li data-bind="click: function() { $parent.val($data); return true; }">
Run Code Online (Sandbox Code Playgroud)