繁体   English   中英

淘汰赛JS-复选框数据绑定

[英]Knockout JS - Checkbox databind

我正在创建一个绑定到属性的复选框,如下所示:

<input type="checkbox" data-bind="checked: hasSurname, enable: verified()"/>

这很好。 我的问题是,当用户未通过验证时,我也希望取消选中该复选框,因此我要执行下一个操作:

  <input type="checkbox" data-bind="checked: hasSurname && verified(), enable: verified()"/>

此选项具有正确的行为,但是hasSurname属性从不会更改为false。

有什么帮助吗?

如果表达式的评估结果为具有“书写”行为的可观察对象,则带值绑定和选中的绑定仅在小部件更改状态时更新可观察对象。

如果要使用复杂的表达式进行读取( hasSurname()&& authenticated() )并更改简单值(仅hasSurname ),则需要使用“写入”回调使计算的可观察值-请参见http:// knockoutjs。 com / documentation / computedObservables.html-特别是有关可写计算可观察对象的部分。

尝试在数据绑定中使用&&时,我遇到了混合结果。 如果我需要类似的逻辑,可以将其封装在可计算的可观察值中。

this.validate1And2 = ko.computed(function () {
    var result;
    result = this.hasSurname() && this.verified();
    return result;
}, this);

有关示例,请参见此jsFiddle(我相信这是您想要的行为)。

http://jsfiddle.net/FwUzc/

更新:我更改了示例,使其仅具有2个复选框,并且hasSurname值在验证值更改时更新。 http://jsfiddle.net/FwUzc/2/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM