Ste*_*son 5 twitter-bootstrap knockout.js
我试图使用bootstrap的漂亮风格的按钮下拉列表与淘汰赛.不幸的是,下拉列表是使用链接构建而不是<select>和knockout-bootstrap没有任何帮助的处理程序.
我已经能够使所有的样式工作(按钮类型,图标,选择/取消选择).但是,我仍然无法使点击功能起作用:
<div class="btn-group">
<!-- Change button type based on status -->
<button type="button" class="btn btn-small dropdown-toggle" data-bind="css: {'btn-default' : status().statusName=='Matched', 'btn-danger' : status().statusName=='None', 'btn-info' : status().statusName=='Set'}" data-toggle="dropdown">
<!-- Add Glyph based on status -->
<span class="glyphicon" data-bind="css: {'glyphicon-ok' : status().statusName=='Matched', 'glyphicon-remove' : status().statusName=='None', 'glyphicon-list' : status().statusName=='Set'}"></span> <span data-bind="text: status().statusName"> </span> <span class="caret"></span>
</button>
<!-- Loop for status -->
<ul class="dropdown-menu" role="menu" data-bind="foreach: $root.availableStatus">
<!-- Disable item if selected -->
<li data-bind="css: {'disabled' : statusName==$parent.status().statusName}">
<!-- Not working -->
<a href="#" data-bind="click: $root.updateStatus"><span class="glyphicon" data-bind="css: {'glyphicon-ok' : statusName=='Matched', 'glyphicon-remove' : statusName=='None', 'glyphicon-list' : statusName=='Set'}"></span> <span data-bind="text: statusName"></span></a>]
Run Code Online (Sandbox Code Playgroud)
Tim*_*lds 10
updateStatus你的功能$root.这个简单的任务你不需要它.将click事件绑定到$parent.status.
我们希望调用当前status函数(a ko.observable)Article.在定义锚点的位置,上下文父级是Article,因此您要使用$parent.status.当前上下文是$root.availableStatus被单击的元素,是将传递给status函数的参数.
<a href="#" data-bind="click: $parent.status">...</a>
Run Code Online (Sandbox Code Playgroud)