非常简单的data-bind="checked: someBool"
,它不检查我的无线电输入。
<input type="radio" data-bind="checked: someBool" />radio
ko代码..。
var data = { someBool: true };
var vm = ko.mapping.fromJS(data);
ko.applyBindings(vm);
无线电未被检查。我是不是遗漏了什么?
直播:http://jsbin.com/exokav/4/edit
发布于 2013-06-14 21:50:04
您需要为要映射到的单选按钮添加一个value属性。另外,值不是布尔值,而是其后的字符串。我使用以下扩展来对单选按钮使用布尔值。(直播:http://jsbin.com/exokav/8):
ko.bindingHandlers.checkedAsBool = {
init: function (element, valueAccessor, allBindingsAccessor) {
var observable = valueAccessor(),
interceptor = ko.computed({
read: function () {
var val = ko.utils.unwrapObservable(observable);
return ((val !== null) && (typeof val !== "undefined") ? val.toString() : val);
},
write: function (newValue) {
observable(newValue === "true");
},
owner: this
});
ko.applyBindingsToNode(element, { checked: interceptor });
}
};
基于RP Niemeyer的this回答。
https://stackoverflow.com/questions/17109884
复制相似问题