【发布时间】:2013-12-03 08:32:10
【问题描述】:
相关:Bootstrap Radio Button Group
HTML:
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary">
<input type="radio" name="options" id="option1" value="1" data-bind="checked: optionsValue"> Option 1
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option2" value="2" data-bind="checked: optionsValue"> Option 2
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option3" value="3" data-bind="checked: optionsValue"> Option 3
</label>
</div>
<br />
<span data-bind="text: optionsValue"></span>
Javascript:
var ViewModel = function() {
this.optionsValue = ko.observable()
};
ko.applyBindings(new ViewModel());
JsFiddle:
我有上面的代码,我正在尝试按预期工作。问题是当data-toggle="buttons" 添加到btn-group div(如Bootstrap 3 example)时,淘汰赛绑定停止工作。如果我离开按钮组的数据切换,则绑定按预期工作,但按钮组看起来很糟糕。我知道这在 Bootstrap 2 中不起作用,因为他们实际上并没有将收音机输入用于收音机样式。为什么现在即使他们可以工作,它也拒绝工作?
【问题讨论】:
-
Bootstrap 工具按钮仍然不能很好地与 KO 配合使用,因此您需要一个自定义绑定处理程序,如下所示:jsfiddle.net/hd89y
-
请注意,使用此代码的单选按钮组确实在 Bootstrap 2.x 中正常工作(尽管它们也在“按钮”内显示单选按钮本身,除非您自己隐藏它)。这是因为 Bootstrap 2.x 代码没有尝试拦截点击 - 它更喜欢 use actual
buttonelements 来模拟同样的行为。
标签: javascript html twitter-bootstrap knockout.js twitter-bootstrap-3