[英]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(我相信这是您想要的行为)。
更新:我更改了示例,使其仅具有2个复选框,并且hasSurname值在验证值更改时更新。 http://jsfiddle.net/FwUzc/2/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.