我正在尝试使用Knockout将click
事件绑定到单选按钮。但是,单击单选按钮时,不会保存。
现在,我刚刚从活动中返回true
。我可以看到事件确实被称为。如果我尝试console.log($parent.SelectedCrossing())
,则会保存该值。有什么想法吗?
我的标记:
<div class="row">
<!-- ko foreach: SelectedRoutes -->
<div class="jumbotron text-center">
<table class="table table-hover borderless" data-bind="visible: availableRoutes().length">
<tbody>
<!-- ko foreach: availableRoutes -->
<tr>
<td>
<input type="radio" data-bind="attr: { value: ID() + bkt(), name: $parentContext.$index() + 'optionsRoute', disabled: !IsBookable }, checked: $parent.SelectedCrossing, click: function () { $parents[1].AvailableRouteChosen($parents[0]) }" />
</td>
<td>
<span data-bind="dateTime: TimeOfDeparture"></span>
</td>
<td>
<span data-bind="dateTime: TimeOfArrival"></span>
</td>
</tr>
<!-- /ko -->
</tbody>
</table>
</div>
<!-- /ko -->
</div>
js:
self.AvailableRouteChosen = function (obj) {
return true;
}
答案 0 :(得分:3)
您的点击处理程序不会返回任何内容:
click: function () { $parents[1].AvailableRouteChosen($parents[0]) }
虽然你的底层函数是(并且返回true,你需要做的是覆盖默认的点击行为)。只返回结果:
click: function () { return $parents[1].AvailableRouteChosen($parents[0]) }