я хотел бы остановиться на примере GBS (который работает довольно неплохо), добавив поддержку использования наблюдаемых параметров jQuery ui (например, отключенный отображается на наблюдаемый, а не только на true или false).
ko.bindingHandlers.jqButton = {
init: function (element, valueAccessor, allBindingsAccessor) {
var options = valueAccessor();
for (var p in options) {
// CHANGE STARTS HERE
if (ko.isObservable(options[p]))
options[p].subscribe(function (newValue) {
$(element).button("option", p, newValue);
$(element).button("refresh");
});
// CHANGE ENDS HERE
options[p] = ko.utils.unwrapObservable(options[p]);
}
$(element).button(options);
ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
$(element).button("destroy");
});
},
update: function (element, valueAccessor) {
var options = valueAccessor();
for (var p in options) {
options[p] = ko.utils.unwrapObservable(options[p]);
}
$(element).button("option", options);
$(element).button("refresh");
}
};
Очень хорошее решение. Благодарю. –