首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从值列表中更新复选框数组的敲出

从值列表中更新复选框数组的敲出
EN

Stack Overflow用户
提问于 2012-07-18 15:28:20
回答 1查看 688关注 0票数 0

我有一个表单,其中添加了一个新的人员记录,也可以编辑他们的记录。

因此,当它是一个新记录时,表单会显示一个未选中的复选框列表,这些复选框对应于它们的资质。它们会毫不费力地回存到数据库。

当我想要编辑人员数据时,我可以获得他们的资质作为资质ids的分隔列表。因此,我希望选中表单上的相应复选框。

我猜需要一个映射/更新函数来使用person的数据更新obsevable数组。

我已经设置了一个基本的jsFiddle,但缺少重要的部分。

我想知道有没有人能给我指个方向?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2012-07-19 15:47:20

下面的自定义绑定最初是由另一个用户RPNiemeyer发布的,但目前我无法检索到答案。无论如何,你可以在下面找到它:

自定义绑定被称为"checkedWithInit“,为了清楚起见,这里的HTML元素的checked属性被方便地设置为true:

代码语言:javascript
复制
<input id="yourId" type="checkbox" value="yourValue" data-bind="checkedWithInit: yourInitialStateVariable" checked="true" />

自定义绑定代码是元素的"init“事件处理程序的”覆盖“

代码语言:javascript
复制
ko.bindingHandlers.checkedWithInit = {
        init: function(element, valueAccessor, allBindingsAccessor, context) {
        var value = valueAccessor();
        if (element.checked) {
            //if it is an array then push this value to it
            if (value.push) {
                value.push(element.value);                 
            } else { //otherwise, just write the value
                if (ko.isWriteableObservable(value)) {
                    value(element.checked);   
                }
            }
        }
        //run the real checked binding's init function
        ko.bindingHandlers.checked.init(element, valueAccessor, allBindingsAccessor, context);
        },
        //always run the checked bindings update function
        update: ko.bindingHandlers.checked.update
    };

我希望这能帮到你,

瓦莱里奥

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

https://stackoverflow.com/questions/11536324

复制
相关文章

相似问题

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