首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用敲除映射库检查无线输入的绑定

使用敲除映射库检查无线输入的绑定
EN

Stack Overflow用户
提问于 2013-06-14 21:41:14
回答 1查看 297关注 0票数 0

非常简单的data-bind="checked: someBool",它不检查我的无线电输入。

<input type="radio" data-bind="checked: someBool" />radio

ko代码..。

代码语言:javascript
运行
复制
var data = { someBool: true };
var vm = ko.mapping.fromJS(data);
ko.applyBindings(vm);

无线电未被检查。我是不是遗漏了什么?

直播:http://jsbin.com/exokav/4/edit

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-14 21:50:04

您需要为要映射到的单选按钮添加一个value属性。另外,值不是布尔值,而是其后的字符串。我使用以下扩展来对单选按钮使用布尔值。(直播:http://jsbin.com/exokav/8):

代码语言:javascript
运行
复制
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回答。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17109884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档