Knockout js:当布尔值为false时绑定复选框启用

Eng*_*ern 2 checkbox knockout.js

我的每个元素都有IsAnabled和IsDeafult.如果IsDefault = true,则应禁用该复选框.

当我这样做时它会起作用,除了我想要"启用"的对手效果:

<input type="checkbox" data-bind="checked: IsEnabled, enable: IsDefault" />
Run Code Online (Sandbox Code Playgroud)

我试过了:

<input type="checkbox" data-bind="checked: IsEnabled, enable: !IsDefault" />
<input type="checkbox" data-bind="checked: IsEnabled, enable: IsDefault == 'false'" />
<input type="checkbox" data-bind="checked: IsEnabled, enable: IsDefault != 'true'" />
<input type="checkbox" data-bind="checked: IsEnabled, enable: IsDefault != true" />
<input type="checkbox" data-bind="checked: IsEnabled, enable: IsDefault == '0'" />
Run Code Online (Sandbox Code Playgroud)

但还是没有运气......

Art*_*kov 11

我建议你阅读以下文章:关于KnockoutJS的10件事 要从文章中引用:

大多数绑定都会对传递给它的值调用ko.utils.unwrapObservable,这将安全地返回observable和non-observable的值.但是,如果在表达式中使用observable,则在绑定中,则需要将其作为函数引用.同样,在代码中,您通常需要将您的observable引用为函数,除非您实际想要传递observable本身(而不是值).

因此(),当您在表达式中使用它们时,应该添加到observable:

<input type="checkbox" data-bind="checked: IsEnabled, enable: !IsDefault()" />
Run Code Online (Sandbox Code Playgroud)