Возможно, есть лучший способ сделать это, но взгляните на это:
http://jsfiddle.net/vQRWQ/
Я добавил новый bindingHandler
:
ko.bindingHandlers.checkbox = {
update: function(element, valueAccessor) {
var value = valueAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
$(element).attr("checked", valueUnwrapped).checkboxradio("refresh");
}
};
И использовал привязку «события»:
data-bind="event: {change: function(){ checked(!checked()); } }, checkbox: checked"