Я также столкнулся с этой проблемой. К сожалению, все предложения здесь или не работали для меня или имели другие проблемы. Поэтому я создал простую настраиваемую привязку, которая работает во всех версиях KO (, включая последнюю версию v3 ):
ko.bindingHandlers.jqmChecked = {
init: ko.bindingHandlers.checked.init,
update: function (element, valueAccessor) {
//KO v3 and previous versions of KO handle this differently
//KO v3 does not use 'update' for 'checked' binding
if (ko.bindingHandlers.checked.update)
ko.bindingHandlers.checked.update.apply(this, arguments); //for KO < v3, delegate the call
else
ko.utils.unwrapObservable(valueAccessor()); //for KO v3, force a subscription to get further updates
if ($(element).data("mobile-checkboxradio")) //calling 'refresh' only if already enhanced by JQM
$(element).checkboxradio('refresh');
}
};
Следует использовать так:
<input type="checkbox" data-bind="jqmChecked: someValue" id="checkbox1"/>
Смотрите полный рабочий пример здесь:
http://jsfiddle.net/srgstm/ub6sq/